These instructions are being written under the assumption that the official helm chart is in use. If not, there may be additional work.\n\n
\nTo collect logs from Apache Airflow, Alloy sidecars must be added to the deployment configuration for the scheduler and worker pods. \n
\n\n\nPlease refer to these instructions for further details.\n
\n`;\n\nexport default { metrics, extraLogsInstructions };\n","const metrics = `# Replace any values between the angle brackets '<>', with your desired configuration\nalloy-metrics:\n extraConfig: |-\n discovery.kubernetes \"apache_cassandra\" {\n role = \"pod\"\n selectors {\n role = \"pod\"\n label = \"[^ ]*) (?P[^ ]*)(?: \\\\\"(?P[^\\\\\\\\\\\\\"]*)\\\\\" \\\\\"(?P.*)\\\\\")?$\"\n }\n \n stage.template {\n source = \"instance\"\n template = \"{{ .namespace }}-{{ .container }}\"\n }\n\n stage.metrics { \n metric.histogram {\n name = \"response_http_codes\"\n description = \"Apache responses by HTTP codes\"\n source = \"code\"\n prefix = \"apache_\"\n buckets = [199,299,399,499,599]\n }\n }\n \n stage.labels {\n values = {\n method = \"\",\n }\n }\n \n stage.static_labels {\n values = {\n logtype = \"access\",\n job = \"integrations/apache_http\",\n }\n }\n }`;\n\nexport default { metrics, logs };\n","const metrics = `# Replace any values between the angle brackets '<>', with your desired configuration\nalloy-metrics:\n extraConfig: |-\n discovery.kubernetes \"apache_mesos\" {\n role = \"endpoints\"\n selectors {\n role = \"service\"\n field = \"metadata.name=\"\n }\n }\n\n discovery.relabel \"apache_mesos\" {\n targets = discovery.kubernetes.apache_mesos.targets\n rule {\n source_labels = [\"__meta_kubernetes_endpoint_port_name\"]\n regex = \"\"\n action = \"keep\"\n }\n rule {\n replacement = \"\"\n target_label = \"mesos_cluster\"\n }\n }\n\n prometheus.scrape \"integrations_mesos_statsd_exporter\" {\n targets = discovery.relabel.apache_mesos.output\n job_name = \"integrations/apache-mesos\"\n forward_to = [prometheus.remote_write.grafana_cloud_metrics.receiver]\n }`;\n\nconst logs = `# Replace any values between the angle brackets '<>', with your desired configuration\npodLogs:\n extraDiscoveryRules: |-\n rule {\n source_labels = [\"__meta_kubernetes_namespace\", \"__meta_kubernetes_pod_name\", \"__meta_kubernetes_pod_container_name\"]\n separator = \":\"\n regex = \"(::)\"\n replacement = \"apache_mesos\"\n target_label = \"integration\"\n }\n rule {\n source_labels = [\"integration\"]\n regex = \"apache_mesos\"\n replacement = \"master\"\n target_label = \"log_type\"\n }\n rule {\n source_labels = [\"__meta_kubernetes_namespace\", \"__meta_kubernetes_pod_name\", \"__meta_kubernetes_pod_container_name\"]\n separator = \":\"\n regex = \"(::)\"\n replacement = \"apache_mesos\"\n target_label = \"integration\"\n }\n rule {\n source_labels = [\"integration\", \"log_type\"]\n separator = \":\"\n regex = \"apache_mesos:\"\n replacement = \"agent\"\n target_label = \"log_type\"\n }\n rule {\n source_labels = [\"integration\", \"__meta_kubernetes_node_name\"]\n separator = \":\"\n regex = \"apache_mesos:(.*)\"\n target_label = \"node\"\n }\n rule {\n source_labels = [\"integration\"]\n regex = \"apache_mesos\"\n replacement = \"\"\n target_label = \"mesos_cluster\"\n }\n rule {\n source_labels = [\"integration\"]\n regex = \"apache_mesos\"\n replacement = \"integrations/mesos\"\n target_label = \"job\"\n }`;\n\nexport default { metrics, logs };\n","const metrics = `# Replace any values between the angle brackets '<>', with your desired configuration\nalloy-metrics:\n extraConfig: |-\n discovery.kubernetes \"apache_solr\" {\n role = \"endpoints\"\n selectors {\n role = \"service\"\n field = \"metadata.name=\"\n }\n }\n\n discovery.relabel \"apache_solr\" {\n targets = discovery.kubernetes.apache_solr.targets\n \n rule {\n source_labels = [\"__meta_kubernetes_namespace\", \"__meta_kubernetes_pod_name\"]\n separator = \"-\"\n target_label = \"instance\"\n }\n rule {\n replacement = \"\"\n target_label = \"solr_cluster\"\n }\n }\n \n prometheus.scrape \"solr_metrics\" { \n targets = discovery.relabel.integrations_solr.output\n metrics_path = \"/metrics\"\n job_name = \"integrations/apache-solr\"\n forward_to = [prometheus.remote_write.grafana_cloud_metrics.receiver]\n }`;\n\nconst logs = `# Replace any values between the angle brackets '<>', with your desired configuration\npodLogs:\n extraDiscoveryRules: |-\n rule {\n source_labels = [\"__meta_kubernetes_namespace\",\"__meta_kubernetes_pod_name\"]\n separator = \":\"\n regex = \":\"\n replacement = \"apache_solr\"\n target_label = \"integration\"\n }\n \n rule {\n source_labels = [\"integration\", \"__meta_kubernetes_pod_ip\",\"__meta_kubernetes_pod_container_port_number\"]\n separator = \":\"\n regex = \"apache_solr:(.*):(.*)\"\n replacement = \"$1:$2\"\n target_label = \"instance\"\n }\n \n rule {\n source_labels = [\"integration\"]\n regex = \"apache_solr\"\n replacement = \"/var/log/solr/solr.log\"\n target_label = \"filename\"\n }\n\n extraLogProcessingStages: |-\n stage.match {\n selector = \"{integration=\\\\\"apache_solr\\\\\"}\"\n \n stage.multiline {\n firstline = \"^\\\\\\\\d{4}-\\\\\\\\d{2}-\\\\\\\\d{2} \\\\\\\\d{2}:\\\\\\\\d{2}:\\\\\\\\d{2}\\\\\\\\.\\\\\\\\d{3}\"\n }\n stage.regex {\n expression = \"^\\\\\\\\d{4}-\\\\\\\\d{2}-\\\\\\\\d{2} \\\\\\\\d{2}:\\\\\\\\d{2}:\\\\\\\\d{2}\\\\\\\\.\\\\\\\\d{3} (?P\\\\\\\\w+)\"\n }\n stage.labels {\n values = {\n level = \"\",\n }\n }\n stage.static_labels {\n values = {\n solr_cluster = \"\",\n job = \"integrations/apache-solr\",\n }\n }\n }`;\n\nexport default { metrics, logs };\n","const metrics = `# Replace any values between the angle brackets '<>', with your desired configuration\nalloy-metrics:\n extraConfig: |-\n discovery.kubernetes \"tomcat_service_jmx\" {\n role = \"service\"\n selectors {\n role = \"service\"\n field = \"metadata.name=\"\n }\n namespaces {\n names = []\n }\n }\n\n discovery.relabel \"tomcat_service_jmx\" {\n targets = discovery.kubernetes.tomcat_service_jmx.targets\n \n rule {\n source_labels = [\"__meta_kubernetes_service_port_name\"]\n action = \"keep\"\n regex = \"\"\n }\n \n rule {\n replacement = \"integrations/apache-tomcat\"\n target_label = \"job\"\n }\n }\n \n prometheus.scrape \"tomcat_metrics\" {\n targets = discovery.relabel.tomcat_service_jmx.output\n job_name = \"integrations/apache-tomcat\"\n forward_to = [prometheus.remote_write.grafana_cloud_metrics.receiver]\n }`;\n\nconst logs = `# Replace any values between the angle brackets '<>', with your desired configuration\npodLogs:\n extraDiscoveryRules: |-\n rule {\n source_labels = [\"__meta_kubernetes_namespace\", \"__meta_kubernetes_pod_name\", \"__meta_kubernetes_pod_container_name\"]\n separator = \":\"\n regex = \"(::)\"\n replacement = \"apache-tomcat\"\n target_label = \"integration\"\n }\n rule {\n source_labels = [\"integration\"]\n regex = \"apache-tomcat\"\n replacement = \"catalina.out\"\n target_label = \"log_type\"\n }\n rule {\n source_labels = [\"integration\"]\n regex = \"apache-tomcat\"\n replacement = \"..svc:\"\n target_label = \"instance\"\n }\n rule {\n source_labels = [\"integration\"]\n regex = \"apache-tomcat\"\n replacement = \"integrations/apache-tomcat\"\n target_label = \"job\"\n }`;\n\nexport default { metrics, logs };\n","const metrics = `# Replace any values between the angle brackets '<>', with your desired configuration\nintegrations:\n cert-manager:\n instances:\n - name: \n labelSelectors:\n : `;\nexport default { metrics };\n","const metrics = `# Replace any values between the angle brackets '<>', with your desired configuration\nalloy-metrics:\n extraConfig: |-\n // Cilium Agent\n discovery.kubernetes \"cilium_agent\" {\n role = \"service\"\n selectors {\n role = \"service\"\n label = \"k8s-app=cilium\"\n }\n }\n \n discovery.relabel \"cilium_agent\" {\n targets = discovery.kubernetes.cilium_agent.targets\n rule {\n source_labels = [\"__meta_kubernetes_endpoint_port_name\"]\n regex = \"metrics\"\n action = \"keep\"\n }\n rule {\n source_labels = [\"__meta_kubernetes_service_label_k8s_app\"]\n target_label = \"k8s_app\"\n }\n }\n\n prometheus.scrape \"cilium_agent\" {\n targets = discovery.relabel.cilium_agent.output\n job_name = \"integrations/cilium-enterprise/cilium-agent\"\n honor_labels = true\n forward_to = [prometheus.remote_write.grafana_cloud_metrics.receiver]\n }\n\n // Cilium Operator\n discovery.kubernetes \"cilium_operator\" {\n role = \"service\"\n selectors {\n role = \"service\"\n label = \"name=cilium-operator,io.cilium/app=operator\"\n }\n }\n\n discovery.relabel \"cilium_operator\" {\n targets = discovery.kubernetes.cilium_operator.targets\n rule {\n source_labels = [\"__meta_kubernetes_endpoint_port_name\"]\n regex = \"metrics\"\n action = \"keep\"\n }\n rule {\n source_labels = [\"__meta_kubernetes_service_label_io_cilium_app_app\"]\n target_label = \"io_cilium_app\"\n }\n }\n\n prometheus.scrape \"cilium_operator\" {\n targets = discovery.relabel.cilium_operator.output\n job_name = \"integrations/cilium-enterprise/cilium-operator\"\n honor_labels = true\n forward_to = [prometheus.remote_write.grafana_cloud_metrics.receiver]\n }\n\n // Hubble Relay\n discovery.kubernetes \"hubble_relay\" {\n role = \"service\"\n selectors {\n role = \"service\"\n label = \"k8s-app=hubble-relay\"\n }\n }\n\n discovery.relabel \"hubble_relay\" {\n targets = discovery.kubernetes.hubble_relay.targets\n rule {\n source_labels = [\"__meta_kubernetes_endpoint_port_name\"]\n regex = \"metrics\"\n action = \"keep\"\n }\n }\n\n prometheus.scrape \"hubble_relay\" {\n targets = discovery.relabel.hubble_relay.output\n job_name = \"integrations/cilium-enterprise/hubble-relay\"\n forward_to = [prometheus.remote_write.grafana_cloud_metrics.receiver]\n }\n\n // Hubble\n discovery.kubernetes \"hubble\" {\n role = \"service\"\n selectors {\n role = \"service\"\n label = \"k8s-app=hubble\"\n }\n }\n \n discovery.relabel \"hubble\" {\n targets = discovery.kubernetes.services.targets\n rule {\n source_labels = [\"__meta_kubernetes_endpoint_port_name\"]\n regex = \"hubble-metrics\"\n action = \"keep\"\n }\n }\n\n prometheus.scrape \"hubble\" {\n targets = discovery.relabel.hubble.output\n job_name = \"integrations/cilium-enterprise/hubble\"\n honor_labels = true\n forward_to = [prometheus.remote_write.grafana_cloud_metrics.receiver]\n }\n\n // Hubble Enterprise\n discovery.kubernetes \"hubble_enterprise\" {\n role = \"service\"\n selectors {\n role = \"service\"\n label = \"app.kubernetes.io/name=hubble-enterprise\"\n }\n }\n\n discovery.relabel \"hubble_enterprise\" {\n targets = discovery.kubernetes.hubble_enterprise.targets\n rule {\n source_labels = [\"__meta_kubernetes_endpoint_port_name\"]\n regex = \"metrics\"\n action = \"keep\"\n }\n }\n\n prometheus.scrape \"hubble_enterprise\" {\n targets = discovery.relabel.hubble_enterprise.output\n job_name = \"integrations/cilium-enterprise/hubble-enterprise\"\n honor_labels = true\n forward_to = [prometheus.remote_write.grafana_cloud_metrics.receiver]\n }\n\n // Hubble Timescape Ingester\n discovery.kubernetes \"hubble_timescape_ingester\" {\n role = \"service\"\n selectors {\n role = \"service\"\n label = \"app.kubernetes.io/name=hubble-timescape-ingester,app.kubernetes.io/component=ingester\"\n }\n }\n\n discovery.relabel \"hubble_timescape_ingester\" {\n targets = discovery.kubernetes.hubble_timescape_ingester.targets\n rule {\n source_labels = [\"__meta_kubernetes_endpoint_port_name\"]\n regex = \"metrics\"\n action = \"keep\"\n }\n }\n \n prometheus.scrape \"hubble_timescape_ingester\" {\n targets = discovery.relabel.hubble_timescape_ingester.output\n job_name = \"integrations/cilium-enterprise/hubble-timescape-ingester\"\n honor_labels = true\n forward_to = [prometheus.remote_write.grafana_cloud_metrics.receiver]\n }\n\n // Hubble Timescape Server\n discovery.kubernetes \"hubble_timescape_server\" {\n role = \"service\"\n selectors {\n role = \"service\"\n label = \"app.kubernetes.io/name=hubble-timescape-server,app.kubernetes.io/component=server\"\n }\n }\n\n discovery.relabel \"hubble_timescape_server\" {\n targets = discovery.kubernetes.hubble_timescape_server.targets\n rule {\n source_labels = [\"__meta_kubernetes_endpoint_port_name\"]\n regex = \"metrics\"\n action = \"keep\"\n }\n }\n \n prometheus.scrape \"hubble_timescape_server\" {\n targets = discovery.relabel.hubble_timescape_server.output\n job_name = \"integrations/cilium-enterprise/hubble-timescape-server\"\n honor_labels = true\n forward_to = [prometheus.remote_write.grafana_cloud_metrics.receiver]\n }`;\n\nexport default { metrics };\n","const metrics = `# Replace any values between the angle brackets '<>', with your desired configuration\nalloy-metrics:\n extraConfig: |-\n discovery.kubernetes \"metrics_clickhouse\" {\n role = \"endpoints\"\n selectors {\n role = \"endpoints\"\n label = \"=\"\n }\n }\n \n discovery.relabel \"metrics_clickhouse\" {\n targets = discovery.kubernetes.metrics_clickhouse.targets\n \n rule {\n source_labels = [\"__meta_kubernetes_endpoint_port_name\"]\n regex = \"\"\n action = \"keep\"\n }\n rule {\n source_labels = [\"__meta_kubernetes_pod_label_clickhouse_cluster\"]\n target_label = \"clickhouse_cluster\"\n }\n rule {\n source_labels = [\"__meta_kubernetes_pod_name\"]\n target_label = \"instance\"\n }\n }\n \n prometheus.scrape \"metrics_clickhouse\" {\n targets = discovery.relabel.metrics_clickhouse.output\n job_name = \"integrations/clickhouse\"\n honor_labels = true\n forward_to = [prometheus.remote_write.grafana_cloud_metrics.receiver]\n }`;\n\nconst logs = `# Replace any values between the angle brackets '<>', with your desired configuration\npodLogs:\n extraDiscoveryRules: |-\n rule {\n source_labels = [\"__meta_kubernetes_namespace\", \"__meta_kubernetes_pod_label_\"]\n separator = \":\"\n regex = \":\"\n replacement = \"clickhouse\"\n target_label = \"integration\"\n }\n \n extraLogProcessingStages: |-\n stage.match {\n selector = \"{integration=\\\\\"clickhouse\\\\\"}\"\n \n stage.multiline {\n firstline = \\`^([\\\\d]{4}).([\\\\d]{1,2}).([\\\\d]{1,2}) (([\\\\d]+):([\\\\d]+):([\\\\d]+).([\\\\d]+))\\`\n max_lines = 0\n max_wait_time = \"0s\"\n }\n \n stage.regex {\n expression = \\`(?P([\\\\d]{4}).([\\\\d]{1,2}).([\\\\d]{1,2}) (([\\\\d]+):([\\\\d]+):([\\\\d]+).([\\\\d]+))) \\\\[ \\\\d+ \\\\] \\\\{.*\\\\} <(?P.+)> (?P(?s:.*))$\\`\n }\n\n stage.template {\n source = \"instance\"\n template = \"{{ .namespace }}-{{ .container }}\"\n }\n\n stage.labels {\n values = {\n instance = \"pod\",\n level = \"\",\n }\n }\n \n stage.static_labels {\n values = {\n job = \"integrations/clickhouse\",\n clickhouse_cluster = \"\",\n }\n }\n }`;\n\nexport default { metrics, logs };\n","const metrics = `# Replace any values between the angle brackets '<>', with your desired configuration\nalloy-metrics:\n extraConfig: |-\n discovery.kubernetes \"cockroachdb\" {\n role = \"service\"\n selectors {\n role = \"service\"\n label = \"=\"\n }\n }\n\n prometheus.scrape \"cockroachdb\" {\n targets = discovery.kubernetes.cockroachdb.output\n job_name = \"integrations/cockroachdb\"\n forward_to = [prometheus.remote_write.grafana_cloud_metrics.receiver]\n }`;\n\nexport default { metrics };\n","const metrics = `# Replace any values between the angle brackets '<>', with your desired configuration\nalloy-metrics:\n extraConfig: |-\n discovery.kubernetes \"coredns\" {\n role = \"pod\"\n selectors {\n role = \"pod\"\n label = \"=\"\n }\n }\n \n discovery.relabel \"coredns\" {\n targets = discovery.kubernetes.coredns.targets\n rule {\n source_labels = [\"__meta_kubernetes_pod_container_port_number\"]\n regex = \"\"\n action = \"keep\"\n } \n rule {\n source_labels = [\"__meta_kubernetes_pod_name\"]\n target_label = \"instance\"\n }\n }\n\n prometheus.scrape \"coredns\" {\n targets = discovery.relabel.coredns.output\n job_name = \"integrations/tensorflow\"\n honor_labels = true\n }`;\n\nexport default { metrics };\n","const metrics = `# Replace any values between the angle brackets '<>', with your desired configuration\nalloy-metrics:\n extraConfig: |-\n discovery.kubernetes \"couchbase\" {\n role = \"endpoints\"\n selectors {\n role = \"service\"\n field = \"metadata.name=\"\n }\n }\n\n discovery.relabel \"couchbase\" {\n targets = discovery.kubernetes.couchbase.targets\n \n rule {\n source_labels = [\"__meta_kubernetes_namespace\", \"__meta_kubernetes_pod_name\"]\n separator = \"-\"\n target_label = \"instance\"\n }\n rule {\n replacement = \"\"\n target_label = \"couchbase_cluster\"\n }\n }\n \n prometheus.scrape \"metrics_couchbase\" { \n targets = discovery.relabel.couchbase.output\n job_name = \"integrations/couchbase\"\n honor_labels = true\n basic_auth {\n username = \"\"\n password = \"\"\n }\n forward_to = [prometheus.remote_write.grafana_cloud_metrics.receiver]\n }`;\n\nconst logs = `# Replace any values between the angle brackets '<>', with your desired configuration\npodLogs:\n extraDiscoveryRules: |-\n rule {\n source_labels = [\"__meta_kubernetes_pod_name\",\"__meta_kubernetes_pod_container_name\"]\n separator = \":\"\n regex = \":\"\n replacement = \"couchbase\"\n target_label = \"integration\"\n }\n \n extraLogProcessingStages: |-\n stage.match {\n selector = \"{integration=\\\\\"couchbase\\\\\"}\"\n \n stage.multiline {\n firstline = \\`\\\\[\\d\\\\] couchbase.log.*\\`\n max_lines = 0\n max_wait_time = \"3s\"\n }\n\n stage.drop {\n expression = \"---\"\n }\n\n stage.template {\n source = \"instance\"\n template = \"{{ .namespace }}-{{ .pod }}\"\n }\n\n stage.static_labels {\n values = {\n couchbase_cluster = \"\",\n job = \"integrations/couchbase\",\n }\n }\n \n stage.labels {\n values = {\n instance = null,\n level = null,\n }\n }\n }`;\n\nexport default { metrics, logs };\n","const metrics = `# Replace any values between the angle brackets '<>', with your desired configuration\nintegrations:\n etcd:\n instances:\n - name: \n labelSelectors:\n : \n`;\n\nexport default { metrics };\n","const metrics = `# Replace any values between the angle brackets '<>', with your desired configuration\nalloy-metrics:\n extraConfig: |-\n discovery.kubernetes \"gitlab\" {\n role = \"pod\"\n selectors {\n role = \"pod\"\n label = \"=\"\n }\n }\n \n discovery.relabel \"gitlab\" {\n targets = discovery.kubernetes.gitlab.targets\n rule {\n source_labels = [\"__meta_kubernetes_pod_container_port_number\"]\n regex = \"\"\n action = \"keep\"\n }\n rule {\n source_labels = [\"__meta_kubernetes_namespace\", \"__meta_kubernetes_pod_container_name\"]\n separator = \"-\"\n target_label = \"instance\"\n } \n }\n \n prometheus.scrape \"gitlab\" {\n targets = discovery.relabel.gitlab.output\n metrics_path = \"/-/metrics\"\n job_name = \"integrations/gitlab\"\n honor_labels = true\n forward_to = [prometheus.remote_write.metrics_service.receiver]\n }`;\n\nconst logs = `# Replace any values between the angle brackets '<>', with your desired configuration\npodLogs:\n extraDiscoveryRules: |-\n rule {\n source_labels = [\"__meta_kubernetes_pod_label_\", \"__meta_kubernetes_pod_container_port_number\"]\n separator = \":\"\n regex = \":\"\n replacement = \"gitlab\"\n target_label = \"integration\"\n }\n\n extraLogProcessingStages: |-\n stage.match {\n selector = \"{integration=\\\\\"gitlab\\\\\"}\"\n\n stage.drop {\n expression = \"^([^{}].*)?$\"\n }\n \n stage.regex {\n expression = \\`^\\\\{\\\"severity\\\":\\\"(?PERROR)\\\",\\\"time\\\":\\\"(?P