# Copyright The OpenTelemetry Authors # SPDX-License-Identifier: Apache-2.0 # This file is generated by 'make generate-kubernetes-manifests' --- apiVersion: v1 kind: Namespace metadata: name: otel-demo --- # Source: opentelemetry-demo/charts/opensearch/templates/poddisruptionbudget.yaml apiVersion: policy/v1 kind: PodDisruptionBudget metadata: name: "opensearch-pdb" labels: app.kubernetes.io/name: opensearch app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/version: "2.19.0" app.kubernetes.io/component: opensearch spec: maxUnavailable: 1 selector: matchLabels: app.kubernetes.io/name: opensearch app.kubernetes.io/instance: opentelemetry-demo --- # Source: opentelemetry-demo/charts/grafana/templates/serviceaccount.yaml apiVersion: v1 kind: ServiceAccount automountServiceAccountToken: false metadata: labels: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/version: "11.5.2" name: grafana namespace: otel-demo --- # Source: opentelemetry-demo/charts/jaeger/templates/allinone-sa.yaml apiVersion: v1 kind: ServiceAccount metadata: name: jaeger labels: app.kubernetes.io/name: jaeger app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/version: "1.53.0" app.kubernetes.io/component: all-in-one automountServiceAccountToken: true --- # Source: opentelemetry-demo/charts/opentelemetry-collector/templates/serviceaccount.yaml apiVersion: v1 kind: ServiceAccount metadata: name: otel-collector namespace: otel-demo labels: app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/version: "0.120.0" app.kubernetes.io/component: standalone-collector --- # Source: opentelemetry-demo/charts/prometheus/templates/serviceaccount.yaml apiVersion: v1 kind: ServiceAccount metadata: labels: app.kubernetes.io/component: server app.kubernetes.io/name: prometheus app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/version: v3.1.0 app.kubernetes.io/part-of: prometheus name: prometheus namespace: otel-demo annotations: {} --- # Source: opentelemetry-demo/templates/serviceaccount.yaml apiVersion: v1 kind: ServiceAccount metadata: name: opentelemetry-demo labels: app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/version: "2.0.2" app.kubernetes.io/part-of: opentelemetry-demo --- # Source: opentelemetry-demo/charts/grafana/templates/secret.yaml apiVersion: v1 kind: Secret metadata: name: grafana namespace: otel-demo labels: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/version: "11.5.2" type: Opaque data: admin-user: "YWRtaW4=" admin-password: "YWRtaW4=" ldap-toml: "" --- # Source: opentelemetry-demo/charts/grafana/templates/configmap.yaml apiVersion: v1 kind: ConfigMap metadata: name: grafana namespace: otel-demo labels: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/version: "11.5.2" data: plugins: grafana-opensearch-datasource grafana.ini: | [analytics] check_for_updates = true [auth] disable_login_form = true [auth.anonymous] enabled = true org_name = Main Org. org_role = Admin [grafana_net] url = https://grafana.net [log] mode = console [paths] data = /var/lib/grafana/ logs = /var/log/grafana plugins = /var/lib/grafana/plugins provisioning = /etc/grafana/provisioning [server] domain = '' root_url = %(protocol)s://%(domain)s:%(http_port)s/grafana serve_from_sub_path = true datasources.yaml: | apiVersion: 1 datasources: - editable: true isDefault: true jsonData: exemplarTraceIdDestinations: - datasourceUid: webstore-traces name: trace_id - name: trace_id url: http://localhost:8080/jaeger/ui/trace/$${__value.raw} urlDisplayLabel: View in Jaeger UI name: Prometheus type: prometheus uid: webstore-metrics url: http://prometheus:9090 - editable: true isDefault: false name: Jaeger type: jaeger uid: webstore-traces url: http://jaeger-query:16686/jaeger/ui - access: proxy editable: true isDefault: false jsonData: database: otel flavor: opensearch logLevelField: severity.text.keyword logMessageField: body pplEnabled: true timeField: observedTimestamp version: 2.18.0 name: OpenSearch type: grafana-opensearch-datasource uid: webstore-logs url: http://opensearch:9200/ dashboardproviders.yaml: | apiVersion: 1 providers: - disableDeletion: false editable: true folder: "" name: default options: path: /var/lib/grafana/dashboards/default orgId: 1 type: file --- # Source: opentelemetry-demo/charts/opensearch/templates/configmap.yaml apiVersion: v1 kind: ConfigMap metadata: name: opensearch-config labels: app.kubernetes.io/name: opensearch app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/version: "2.19.0" app.kubernetes.io/component: opensearch data: opensearch.yml: | cluster.name: opensearch-cluster # Bind to all interfaces because we don't know what IP address Docker will assign to us. network.host: 0.0.0.0 # Setting network.host to a non-loopback address enables the annoying bootstrap checks. "Single-node" mode disables them again. # Implicitly done if ".singleNode" is set to "true". # discovery.type: single-node # Start OpenSearch Security Demo Configuration # WARNING: revise all the lines below before you go into production # plugins: # security: # ssl: # transport: # pemcert_filepath: esnode.pem # pemkey_filepath: esnode-key.pem # pemtrustedcas_filepath: root-ca.pem # enforce_hostname_verification: false # http: # enabled: true # pemcert_filepath: esnode.pem # pemkey_filepath: esnode-key.pem # pemtrustedcas_filepath: root-ca.pem # allow_unsafe_democertificates: true # allow_default_init_securityindex: true # authcz: # admin_dn: # - CN=kirk,OU=client,O=client,L=test,C=de # audit.type: internal_opensearch # enable_snapshot_restore_privilege: true # check_snapshot_restore_write_privileges: true # restapi: # roles_enabled: ["all_access", "security_rest_api_access"] # system_indices: # enabled: true # indices: # [ # ".opendistro-alerting-config", # ".opendistro-alerting-alert*", # ".opendistro-anomaly-results*", # ".opendistro-anomaly-detector*", # ".opendistro-anomaly-checkpoints", # ".opendistro-anomaly-detection-state", # ".opendistro-reports-*", # ".opendistro-notifications-*", # ".opendistro-notebooks", # ".opendistro-asynchronous-search-response*", # ] ######## End OpenSearch Security Demo Configuration ######## --- # Source: opentelemetry-demo/charts/opentelemetry-collector/templates/configmap.yaml apiVersion: v1 kind: ConfigMap metadata: name: otel-collector namespace: otel-demo labels: app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/version: "0.120.0" app.kubernetes.io/component: standalone-collector data: relay: | connectors: spanmetrics: {} exporters: debug: {} opensearch: http: endpoint: http://opensearch:9200 tls: insecure: true logs_index: otel otlp: endpoint: jaeger-collector:4317 tls: insecure: true otlphttp/prometheus: endpoint: http://prometheus:9090/api/v1/otlp tls: insecure: true extensions: health_check: endpoint: ${env:MY_POD_IP}:13133 processors: batch: {} k8sattributes: extract: metadata: - k8s.namespace.name - k8s.deployment.name - k8s.statefulset.name - k8s.daemonset.name - k8s.cronjob.name - k8s.job.name - k8s.node.name - k8s.pod.name - k8s.pod.uid - k8s.pod.start_time passthrough: false pod_association: - sources: - from: resource_attribute name: k8s.pod.ip - sources: - from: resource_attribute name: k8s.pod.uid - sources: - from: connection memory_limiter: check_interval: 5s limit_percentage: 80 spike_limit_percentage: 25 resource: attributes: - action: insert from_attribute: k8s.pod.uid key: service.instance.id transform: error_mode: ignore trace_statements: - context: span statements: - replace_pattern(name, "\\?.*", "") - replace_match(name, "GET /api/products/*", "GET /api/products/{productId}") receivers: httpcheck/frontend-proxy: targets: - endpoint: http://frontend-proxy:8080 jaeger: protocols: grpc: endpoint: ${env:MY_POD_IP}:14250 thrift_compact: endpoint: ${env:MY_POD_IP}:6831 thrift_http: endpoint: ${env:MY_POD_IP}:14268 otlp: protocols: grpc: endpoint: ${env:MY_POD_IP}:4317 http: cors: allowed_origins: - http://* - https://* endpoint: ${env:MY_POD_IP}:4318 prometheus: config: scrape_configs: - job_name: opentelemetry-collector scrape_interval: 10s static_configs: - targets: - ${env:MY_POD_IP}:8888 redis: collection_interval: 10s endpoint: valkey-cart:6379 zipkin: endpoint: ${env:MY_POD_IP}:9411 service: extensions: - health_check pipelines: logs: exporters: - opensearch - debug processors: - k8sattributes - memory_limiter - resource - batch receivers: - otlp metrics: exporters: - otlphttp/prometheus - debug processors: - k8sattributes - memory_limiter - resource - batch receivers: - httpcheck/frontend-proxy - redis - otlp - spanmetrics traces: exporters: - otlp - debug - spanmetrics processors: - k8sattributes - memory_limiter - resource - transform - batch receivers: - otlp - jaeger - zipkin telemetry: metrics: address: ${env:MY_POD_IP}:8888 level: detailed readers: - periodic: exporter: otlp: endpoint: otel-collector:4318 protocol: grpc interval: 10000 timeout: 5000 --- # Source: opentelemetry-demo/charts/prometheus/templates/cm.yaml apiVersion: v1 kind: ConfigMap metadata: labels: app.kubernetes.io/component: server app.kubernetes.io/name: prometheus app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/version: v3.1.0 app.kubernetes.io/part-of: prometheus name: prometheus namespace: otel-demo data: allow-snippet-annotations: "false" alerting_rules.yml: | {} alerts: | {} prometheus.yml: | global: evaluation_interval: 30s scrape_interval: 5s scrape_timeout: 3s storage: tsdb: out_of_order_time_window: 30m rule_files: - /etc/config/recording_rules.yml - /etc/config/alerting_rules.yml - /etc/config/rules - /etc/config/alerts scrape_configs: - job_name: prometheus static_configs: - targets: - localhost:9090 - bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token job_name: kubernetes-apiservers kubernetes_sd_configs: - role: endpoints relabel_configs: - action: keep regex: default;kubernetes;https source_labels: - __meta_kubernetes_namespace - __meta_kubernetes_service_name - __meta_kubernetes_endpoint_port_name scheme: https tls_config: ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token job_name: kubernetes-nodes kubernetes_sd_configs: - role: node relabel_configs: - action: labelmap regex: __meta_kubernetes_node_label_(.+) - replacement: kubernetes.default.svc:443 target_label: __address__ - regex: (.+) replacement: /api/v1/nodes/$1/proxy/metrics source_labels: - __meta_kubernetes_node_name target_label: __metrics_path__ scheme: https tls_config: ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token job_name: kubernetes-nodes-cadvisor kubernetes_sd_configs: - role: node relabel_configs: - action: labelmap regex: __meta_kubernetes_node_label_(.+) - replacement: kubernetes.default.svc:443 target_label: __address__ - regex: (.+) replacement: /api/v1/nodes/$1/proxy/metrics/cadvisor source_labels: - __meta_kubernetes_node_name target_label: __metrics_path__ scheme: https tls_config: ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - honor_labels: true job_name: kubernetes-service-endpoints kubernetes_sd_configs: - role: endpoints relabel_configs: - action: keep regex: true source_labels: - __meta_kubernetes_service_annotation_prometheus_io_scrape - action: drop regex: true source_labels: - __meta_kubernetes_service_annotation_prometheus_io_scrape_slow - action: replace regex: (https?) source_labels: - __meta_kubernetes_service_annotation_prometheus_io_scheme target_label: __scheme__ - action: replace regex: (.+) source_labels: - __meta_kubernetes_service_annotation_prometheus_io_path target_label: __metrics_path__ - action: replace regex: (.+?)(?::\d+)?;(\d+) replacement: $1:$2 source_labels: - __address__ - __meta_kubernetes_service_annotation_prometheus_io_port target_label: __address__ - action: labelmap regex: __meta_kubernetes_service_annotation_prometheus_io_param_(.+) replacement: __param_$1 - action: labelmap regex: __meta_kubernetes_service_label_(.+) - action: replace source_labels: - __meta_kubernetes_namespace target_label: namespace - action: replace source_labels: - __meta_kubernetes_service_name target_label: service - action: replace source_labels: - __meta_kubernetes_pod_node_name target_label: node - honor_labels: true job_name: kubernetes-service-endpoints-slow kubernetes_sd_configs: - role: endpoints relabel_configs: - action: keep regex: true source_labels: - __meta_kubernetes_service_annotation_prometheus_io_scrape_slow - action: replace regex: (https?) source_labels: - __meta_kubernetes_service_annotation_prometheus_io_scheme target_label: __scheme__ - action: replace regex: (.+) source_labels: - __meta_kubernetes_service_annotation_prometheus_io_path target_label: __metrics_path__ - action: replace regex: (.+?)(?::\d+)?;(\d+) replacement: $1:$2 source_labels: - __address__ - __meta_kubernetes_service_annotation_prometheus_io_port target_label: __address__ - action: labelmap regex: __meta_kubernetes_service_annotation_prometheus_io_param_(.+) replacement: __param_$1 - action: labelmap regex: __meta_kubernetes_service_label_(.+) - action: replace source_labels: - __meta_kubernetes_namespace target_label: namespace - action: replace source_labels: - __meta_kubernetes_service_name target_label: service - action: replace source_labels: - __meta_kubernetes_pod_node_name target_label: node scrape_interval: 5m scrape_timeout: 30s - honor_labels: true job_name: prometheus-pushgateway kubernetes_sd_configs: - role: service relabel_configs: - action: keep regex: pushgateway source_labels: - __meta_kubernetes_service_annotation_prometheus_io_probe - honor_labels: true job_name: kubernetes-services kubernetes_sd_configs: - role: service metrics_path: /probe params: module: - http_2xx relabel_configs: - action: keep regex: true source_labels: - __meta_kubernetes_service_annotation_prometheus_io_probe - source_labels: - __address__ target_label: __param_target - replacement: blackbox target_label: __address__ - source_labels: - __param_target target_label: instance - action: labelmap regex: __meta_kubernetes_service_label_(.+) - source_labels: - __meta_kubernetes_namespace target_label: namespace - source_labels: - __meta_kubernetes_service_name target_label: service - honor_labels: true job_name: kubernetes-pods kubernetes_sd_configs: - role: pod relabel_configs: - action: keep regex: true source_labels: - __meta_kubernetes_pod_annotation_prometheus_io_scrape - action: drop regex: true source_labels: - __meta_kubernetes_pod_annotation_prometheus_io_scrape_slow - action: replace regex: (https?) source_labels: - __meta_kubernetes_pod_annotation_prometheus_io_scheme target_label: __scheme__ - action: replace regex: (.+) source_labels: - __meta_kubernetes_pod_annotation_prometheus_io_path target_label: __metrics_path__ - action: replace regex: (\d+);(([A-Fa-f0-9]{1,4}::?){1,7}[A-Fa-f0-9]{1,4}) replacement: '[$2]:$1' source_labels: - __meta_kubernetes_pod_annotation_prometheus_io_port - __meta_kubernetes_pod_ip target_label: __address__ - action: replace regex: (\d+);((([0-9]+?)(\.|$)){4}) replacement: $2:$1 source_labels: - __meta_kubernetes_pod_annotation_prometheus_io_port - __meta_kubernetes_pod_ip target_label: __address__ - action: labelmap regex: __meta_kubernetes_pod_annotation_prometheus_io_param_(.+) replacement: __param_$1 - action: labelmap regex: __meta_kubernetes_pod_label_(.+) - action: replace source_labels: - __meta_kubernetes_namespace target_label: namespace - action: replace source_labels: - __meta_kubernetes_pod_name target_label: pod - action: drop regex: Pending|Succeeded|Failed|Completed source_labels: - __meta_kubernetes_pod_phase - action: replace source_labels: - __meta_kubernetes_pod_node_name target_label: node - honor_labels: true job_name: kubernetes-pods-slow kubernetes_sd_configs: - role: pod relabel_configs: - action: keep regex: true source_labels: - __meta_kubernetes_pod_annotation_prometheus_io_scrape_slow - action: replace regex: (https?) source_labels: - __meta_kubernetes_pod_annotation_prometheus_io_scheme target_label: __scheme__ - action: replace regex: (.+) source_labels: - __meta_kubernetes_pod_annotation_prometheus_io_path target_label: __metrics_path__ - action: replace regex: (\d+);(([A-Fa-f0-9]{1,4}::?){1,7}[A-Fa-f0-9]{1,4}) replacement: '[$2]:$1' source_labels: - __meta_kubernetes_pod_annotation_prometheus_io_port - __meta_kubernetes_pod_ip target_label: __address__ - action: replace regex: (\d+);((([0-9]+?)(\.|$)){4}) replacement: $2:$1 source_labels: - __meta_kubernetes_pod_annotation_prometheus_io_port - __meta_kubernetes_pod_ip target_label: __address__ - action: labelmap regex: __meta_kubernetes_pod_annotation_prometheus_io_param_(.+) replacement: __param_$1 - action: labelmap regex: __meta_kubernetes_pod_label_(.+) - action: replace source_labels: - __meta_kubernetes_namespace target_label: namespace - action: replace source_labels: - __meta_kubernetes_pod_name target_label: pod - action: drop regex: Pending|Succeeded|Failed|Completed source_labels: - __meta_kubernetes_pod_phase - action: replace source_labels: - __meta_kubernetes_pod_node_name target_label: node scrape_interval: 5m scrape_timeout: 30s recording_rules.yml: | {} rules: | {} --- # Source: opentelemetry-demo/templates/flagd-config.yaml apiVersion: v1 kind: ConfigMap metadata: name: flagd-config namespace: otel-demo labels: app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/version: "2.0.2" app.kubernetes.io/part-of: opentelemetry-demo data: demo.flagd.json: | { "$schema": "https://flagd.dev/schema/v0/flags.json", "flags": { "productCatalogFailure": { "description": "Fail product catalog service on a specific product", "state": "ENABLED", "variants": { "on": true, "off": false }, "defaultVariant": "off" }, "recommendationCacheFailure": { "description": "Fail recommendation service cache", "state": "ENABLED", "variants": { "on": true, "off": false }, "defaultVariant": "off" }, "adManualGc": { "description": "Triggers full manual garbage collections in the ad service", "state": "ENABLED", "variants": { "on": true, "off": false }, "defaultVariant": "off" }, "adHighCpu": { "description": "Triggers high cpu load in the ad service", "state": "ENABLED", "variants": { "on": true, "off": false }, "defaultVariant": "off" }, "adFailure": { "description": "Fail ad service", "state": "ENABLED", "variants": { "on": true, "off": false }, "defaultVariant": "off" }, "kafkaQueueProblems": { "description": "Overloads Kafka queue while simultaneously introducing a consumer side delay leading to a lag spike", "state": "ENABLED", "variants": { "on": 100, "off": 0 }, "defaultVariant": "off" }, "cartFailure": { "description": "Fail cart service", "state": "ENABLED", "variants": { "on": true, "off": false }, "defaultVariant": "off" }, "paymentFailure": { "description": "Fail payment service charge requests n%", "state": "ENABLED", "variants": { "100%": 1, "90%": 0.95, "75%": 0.75, "50%": 0.5, "25%": 0.25, "10%": 0.1, "off": 0 }, "defaultVariant": "off" }, "paymentUnreachable": { "description": "Payment service is unavailable", "state": "ENABLED", "variants": { "on": true, "off": false }, "defaultVariant": "off" }, "loadGeneratorFloodHomepage": { "description": "Flood the frontend with a large amount of requests.", "state": "ENABLED", "variants": { "on": 100, "off": 0 }, "defaultVariant": "off" }, "imageSlowLoad": { "description": "slow loading images in the frontend", "state": "ENABLED", "variants": { "10sec": 10000, "5sec": 5000, "off": 0 }, "defaultVariant": "off" } } } --- # Source: opentelemetry-demo/templates/grafana-dashboards.yaml apiVersion: v1 kind: ConfigMap metadata: name: grafana-dashboards namespace: otel-demo labels: app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/version: "2.0.2" app.kubernetes.io/part-of: opentelemetry-demo data: demo-dashboard.json: |- { "annotations": { "list": [ { "builtIn": 1, "datasource": { "type": "grafana", "uid": "-- Grafana --" }, "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", "name": "Annotations & Alerts", "target": { "limit": 100, "matchAny": false, "tags": [], "type": "dashboard" }, "type": "dashboard" } ] }, "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 1, "id": 2, "links": [], "panels": [ { "fieldConfig": { "defaults": {}, "overrides": [] }, "gridPos": { "h": 3, "w": 24, "x": 0, "y": 0 }, "id": 21, "options": { "code": { "language": "plaintext", "showLineNumbers": false, "showMiniMap": false }, "content": "This dashboard shows RED metrics for the selected service, as generated by the spanmetrics connector in the OpenTelemetry Collector.\nIf the selected service emits logs, the logs will also be displayed.\nCustom metrics generated by some services are also displayed. \n
\nChart panels may require 5 minutes after the Demo is started before rendering data.", "mode": "html" }, "pluginVersion": "11.5.2", "title": "", "type": "text" }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 3 }, "id": 14, "panels": [], "title": "Spanmetrics (RED metrics)", "type": "row" }, { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "reqps" }, "overrides": [] }, "gridPos": { "h": 8, "w": 8, "x": 0, "y": 4 }, "id": 12, "interval": "2m", "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "hideZeros": false, "mode": "multi", "sort": "desc" } }, "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "editorMode": "code", "expr": "sum by (span_name) (rate(traces_span_metrics_duration_milliseconds_count{service_name=\"${service}\"}[$__rate_interval]))", "legendFormat": "{{ span_name }}", "range": true, "refId": "A" } ], "title": "Requests Rate by Span Name", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "description": "", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] } }, "overrides": [] }, "gridPos": { "h": 8, "w": 8, "x": 8, "y": 4 }, "id": 10, "interval": "2m", "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "hideZeros": false, "mode": "multi", "sort": "desc" } }, "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "editorMode": "code", "expr": "sum by (span_name) (rate(traces_span_metrics_calls_total{status_code=\"STATUS_CODE_ERROR\", service_name=\"${service}\"}[$__rate_interval]))", "interval": "", "legendFormat": "{{ span_name }}", "range": true, "refId": "A" } ], "title": "Error Rate by Span Name", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "description": "", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "dtdurationms" }, "overrides": [] }, "gridPos": { "h": 8, "w": 8, "x": 16, "y": 4 }, "id": 2, "interval": "2m", "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "hideZeros": false, "mode": "multi", "sort": "desc" } }, "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "editorMode": "code", "exemplar": false, "expr": "histogram_quantile(0.50, sum(rate(traces_span_metrics_duration_milliseconds_bucket{service_name=\"${service}\"}[$__rate_interval])) by (le, span_name))", "legendFormat": "{{span_name}}", "range": true, "refId": "A" } ], "title": "Average Duration by Span Name", "type": "timeseries" }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 12 }, "id": 19, "panels": [], "title": "Application Log Records", "type": "row" }, { "datasource": { "type": "grafana-opensearch-datasource", "uid": "webstore-logs" }, "description": "", "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "custom": { "align": "left", "cellOptions": { "type": "auto" }, "inspect": false }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] } }, "overrides": [ { "matcher": { "id": "byName", "options": "count()" }, "properties": [ { "id": "custom.width", "value": 90 } ] } ] }, "gridPos": { "h": 8, "w": 4, "x": 0, "y": 13 }, "id": 20, "options": { "cellHeight": "sm", "footer": { "countRows": false, "fields": "", "reducer": [ "sum" ], "show": false }, "showHeader": true }, "pluginVersion": "11.5.2", "targets": [ { "alias": "", "bucketAggs": [ { "field": "severity.text.keyword", "id": "3", "settings": { "min_doc_count": "1", "order": "desc", "orderBy": "_count", "size": "0" }, "type": "terms" } ], "datasource": { "type": "grafana-opensearch-datasource", "uid": "webstore-logs" }, "format": "table", "metrics": [ { "id": "1", "type": "count" } ], "query": "search source=otel\n| where resource.service.name=\"${service}\"\n| stats count() by severity.text", "queryType": "PPL", "refId": "A", "timeField": "observedTimestamp" } ], "title": "Log Records by Severity", "transformations": [ { "id": "organize", "options": { "excludeByName": {}, "includeByName": {}, "indexByName": {}, "renameByName": { "Count": "", "severity.text.keyword": "Severity" } } } ], "type": "table" }, { "datasource": { "type": "grafana-opensearch-datasource", "uid": "webstore-logs" }, "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "custom": { "align": "auto", "cellOptions": { "type": "auto", "wrapText": false }, "filterable": true, "inspect": true }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] } }, "overrides": [ { "matcher": { "id": "byName", "options": "observedTimestamp" }, "properties": [] }, { "matcher": { "id": "byName", "options": "body" }, "properties": [ { "id": "custom.width", "value": 386 } ] }, { "matcher": { "id": "byName", "options": "severity.text" }, "properties": [ { "id": "custom.width", "value": 127 } ] } ] }, "gridPos": { "h": 8, "w": 20, "x": 4, "y": 13 }, "id": 17, "options": { "cellHeight": "sm", "footer": { "countRows": false, "fields": "", "reducer": [ "sum" ], "show": false }, "showHeader": true, "sortBy": [] }, "pluginVersion": "11.5.2", "targets": [ { "alias": "", "bucketAggs": [], "datasource": { "type": "grafana-opensearch-datasource", "uid": "webstore-logs" }, "format": "table", "hide": false, "metrics": [ { "id": "1", "settings": { "order": "desc", "size": "100", "useTimeRange": true }, "type": "raw_data" } ], "query": "search source=otel\n| where resource.service.name=\"${service}\"\n| sort - observedTimestamp \n| head 100", "queryType": "PPL", "refId": "A", "timeField": "observedTimestamp" } ], "title": "Log Records (100 recent entries)", "transformations": [ { "id": "organize", "options": { "excludeByName": { "@timestamp": true }, "includeByName": {}, "indexByName": { "@timestamp": 1, "attributes.data_stream.dataset": 4, "attributes.data_stream.namespace": 5, "attributes.data_stream.type": 6, "attributes.productId": 7, "attributes.quantity": 8, "attributes.userId": 9, "body": 3, "instrumentationScope.name": 10, "observedTimestamp": 0, "resource.container.id": 11, "resource.docker.cli.cobra.command_path": 12, "resource.host.name": 13, "resource.service.name": 14, "resource.telemetry.sdk.language": 15, "resource.telemetry.sdk.name": 16, "resource.telemetry.sdk.version": 17, "severity.number": 18, "severity.text": 2, "spanId": 19, "traceId": 20 }, "renameByName": {} } } ], "type": "table" }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 21 }, "id": 18, "panels": [], "title": "Application Metrics", "type": "row" }, { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "percent" }, "overrides": [] }, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 22 }, "id": 6, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "hideZeros": false, "mode": "multi", "sort": "desc" } }, "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "editorMode": "code", "expr": "rate(process_runtime_cpython_cpu_time_seconds_total{type=~\"system\"}[$__rate_interval])*100", "hide": false, "interval": "2m", "legendFormat": "{{job}} ({{type}})", "range": true, "refId": "A" }, { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "editorMode": "code", "expr": "rate(process_runtime_cpython_cpu_time_seconds_total{type=~\"user\"}[$__rate_interval])*100", "hide": false, "interval": "2m", "legendFormat": "{{job}} ({{type}})", "range": true, "refId": "B" } ], "title": "Python services (CPU%)", "transformations": [ { "id": "renameByRegex", "options": { "regex": "opentelemetry-demo/(.*)", "renamePattern": "$1" } } ], "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "bytes" }, "overrides": [] }, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 22 }, "id": 8, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "hideZeros": false, "mode": "multi", "sort": "desc" } }, "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "editorMode": "code", "expr": "process_runtime_cpython_memory_bytes{type=\"rss\"}", "legendFormat": "{{job}}", "range": true, "refId": "A" } ], "title": "Python services (Memory)", "transformations": [ { "id": "renameByRegex", "options": { "regex": "opentelemetry-demo/(.*)", "renamePattern": "$1" } } ], "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] } }, "overrides": [] }, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 30 }, "id": 4, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": false }, "tooltip": { "hideZeros": false, "mode": "multi", "sort": "desc" } }, "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "editorMode": "code", "expr": "rate(app_recommendations_counter_total{recommendation_type=\"catalog\"}[$__rate_interval])", "interval": "2m", "legendFormat": "recommendations", "range": true, "refId": "A" } ], "title": "Recommendations Rate", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] } }, "overrides": [] }, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 30 }, "id": 16, "interval": "2m", "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "hideZeros": false, "mode": "multi", "sort": "desc" } }, "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "editorMode": "code", "expr": "rate(otel_trace_span_processor_spans{job=\"quote\"}[2m])*120", "interval": "2m", "legendFormat": "{{state}}", "range": true, "refId": "A" } ], "title": "Quote Service batch span processor", "type": "timeseries" }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 38 }, "id": 23, "panels": [], "title": "Service Dependency", "type": "row" }, { "datasource": { "type": "jaeger", "uid": "webstore-traces" }, "fieldConfig": { "defaults": {}, "overrides": [] }, "gridPos": { "h": 18, "w": 24, "x": 0, "y": 39 }, "id": 22, "options": { "edges": { "mainStatUnit": "requests" }, "nodes": { "arcs": [], "mainStatUnit": "" }, "zoomMode": "cooperative" }, "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "jaeger", "uid": "webstore-traces" }, "queryType": "dependencyGraph", "refId": "A" } ], "title": "Service Dependency", "type": "nodeGraph" } ], "preload": false, "refresh": "", "schemaVersion": 40, "tags": [], "templating": { "list": [ { "current": { "text": "frontend", "value": "frontend" }, "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "definition": "traces_span_metrics_duration_milliseconds_bucket", "includeAll": false, "label": "Service", "name": "service", "options": [], "query": { "query": "traces_span_metrics_duration_milliseconds_bucket", "refId": "PrometheusVariableQueryEditor-VariableQuery" }, "refresh": 1, "regex": "/.*service.name=\\\"([^\\\"]+)\\\".*/", "sort": 1, "type": "query" } ] }, "time": { "from": "now-15m", "to": "now" }, "timepicker": {}, "timezone": "", "title": "Demo Dashboard", "uid": "W2gX2zHVk", "version": 2, "weekStart": "" } exemplars-dashboard.json: |- { "annotations": { "list": [ { "builtIn": 1, "datasource": { "type": "grafana", "uid": "-- Grafana --" }, "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", "name": "Annotations & Alerts", "type": "dashboard" } ] }, "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 0, "id": 5, "links": [], "panels": [ { "fieldConfig": { "defaults": {}, "overrides": [] }, "gridPos": { "h": 2, "w": 24, "x": 0, "y": 0 }, "id": 8, "options": { "code": { "language": "plaintext", "showLineNumbers": false, "showMiniMap": false }, "content": "This dashboard shows the use of metric exemplars.\nExemplars can be used to look up a trace in Jaeger.\nOnly the most recent exemplars may still be available in Jaeger.\n
\nChart panels may require 5 minutes after the Demo is started before rendering data.", "mode": "html" }, "pluginVersion": "11.4.0", "title": "", "type": "text" }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 2 }, "id": 4, "panels": [], "title": "GetCart Exemplars", "type": "row" }, { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "fieldConfig": { "defaults": { "custom": { "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "scaleDistribution": { "type": "linear" } } }, "overrides": [] }, "gridPos": { "h": 9, "w": 24, "x": 0, "y": 3 }, "id": 2, "interval": "2m", "options": { "calculate": false, "cellGap": 1, "color": { "exponent": 0.5, "fill": "dark-orange", "mode": "scheme", "reverse": false, "scale": "exponential", "scheme": "Spectral", "steps": 64 }, "exemplars": { "color": "rgba(255,0,255,0.7)" }, "filterValues": { "le": 1e-9 }, "legend": { "show": true }, "rowsFrame": { "layout": "auto" }, "tooltip": { "mode": "single", "showColorScale": false, "yHistogram": false }, "yAxis": { "axisPlacement": "left", "reverse": false } }, "pluginVersion": "11.4.0", "targets": [ { "disableTextWrap": false, "editorMode": "builder", "exemplar": true, "expr": "sum by(le) (rate(app_cart_get_cart_latency_bucket[$__rate_interval]))", "format": "heatmap", "fullMetaSearch": false, "includeNullMetadata": false, "instant": true, "legendFormat": "{{le}}", "range": true, "refId": "A", "useBackend": false } ], "title": "GetCart Latency Heatmap with Exemplars", "type": "heatmap" }, { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "auto", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] } }, "overrides": [] }, "gridPos": { "h": 10, "w": 24, "x": 0, "y": 12 }, "id": 5, "interval": "2m", "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "single", "sort": "none" } }, "pluginVersion": "11.4.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "disableTextWrap": false, "editorMode": "builder", "exemplar": true, "expr": "histogram_quantile(0.95, sum by(le) (rate(app_cart_get_cart_latency_bucket[$__rate_interval])))", "fullMetaSearch": false, "includeNullMetadata": false, "legendFormat": "p95 GetCart", "range": true, "refId": "A", "useBackend": false } ], "title": "95th Pct Cart GetCart Latency with Exemplars", "type": "timeseries" }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 22 }, "id": 3, "panels": [], "title": "AddItem Exemplars", "type": "row" }, { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "fieldConfig": { "defaults": { "custom": { "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "scaleDistribution": { "type": "linear" } } }, "overrides": [] }, "gridPos": { "h": 9, "w": 24, "x": 0, "y": 23 }, "id": 6, "interval": "2m", "options": { "calculate": false, "cellGap": 1, "color": { "exponent": 0.5, "fill": "dark-orange", "mode": "scheme", "reverse": false, "scale": "exponential", "scheme": "Spectral", "steps": 64 }, "exemplars": { "color": "rgba(255,0,255,0.7)" }, "filterValues": { "le": 1e-9 }, "legend": { "show": true }, "rowsFrame": { "layout": "auto" }, "tooltip": { "mode": "single", "showColorScale": false, "yHistogram": false }, "yAxis": { "axisPlacement": "left", "reverse": false } }, "pluginVersion": "11.4.0", "targets": [ { "disableTextWrap": false, "editorMode": "builder", "exemplar": true, "expr": "sum by(le) (rate(app_cart_add_item_latency_bucket[$__rate_interval]))", "format": "heatmap", "fullMetaSearch": false, "includeNullMetadata": false, "instant": true, "legendFormat": "{{le}}", "range": true, "refId": "A", "useBackend": false } ], "title": "AddItem Latency Heatmap with Exemplars", "type": "heatmap" }, { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "auto", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green" }, { "color": "red", "value": 80 } ] } }, "overrides": [] }, "gridPos": { "h": 10, "w": 24, "x": 0, "y": 32 }, "id": 1, "interval": "2m", "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "single", "sort": "none" } }, "pluginVersion": "11.4.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "disableTextWrap": false, "editorMode": "builder", "exemplar": true, "expr": "histogram_quantile(0.95, sum by(le) (rate(app_cart_add_item_latency_bucket[$__rate_interval])))", "fullMetaSearch": false, "includeNullMetadata": false, "legendFormat": "p95 AddItem", "range": true, "refId": "A", "useBackend": false } ], "title": "95th Pct Cart AddItem Latency with Exemplars", "type": "timeseries" } ], "preload": false, "schemaVersion": 40, "tags": [], "templating": { "list": [] }, "time": { "from": "now-15m", "to": "now" }, "timepicker": {}, "timezone": "browser", "title": "Cart Service Exemplars", "uid": "ce6sd46kfkglca", "version": 3, "weekStart": "" } opentelemetry-collector.json: |- { "annotations": { "list": [ { "builtIn": 1, "datasource": { "type": "datasource", "uid": "grafana" }, "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", "name": "Annotations & Alerts", "target": { "limit": 100, "matchAny": false, "tags": [], "type": "dashboard" }, "type": "dashboard" } ] }, "description": "Visualize OpenTelemetry (OTEL) collector metrics (tested with OTEL contrib v0.120.1)", "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 1, "id": 4, "links": [], "panels": [ { "fieldConfig": { "defaults": {}, "overrides": [] }, "gridPos": { "h": 2, "w": 24, "x": 0, "y": 0 }, "id": 86, "options": { "code": { "language": "plaintext", "showLineNumbers": false, "showMiniMap": false }, "content": "This dashboard uses the metrics generated by the OpenTelemetry Collector.\nIt is used to understand the overall performance and health of the OpenTelemetry Collector.\n
\nChart panels may require 5 minutes after the Demo is started before rendering data.\n", "mode": "html" }, "pluginVersion": "11.5.2", "title": "", "type": "text" }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 2 }, "id": 23, "panels": [], "title": "Receivers", "type": "row" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "description": "Accepted: count/rate of spans successfully pushed into the pipeline.\nRefused: count/rate of spans that could not be pushed into the pipeline.", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "links": [], "mappings": [], "min": 0, "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "short" }, "overrides": [ { "matcher": { "id": "byRegexp", "options": "/Refused.*/" }, "properties": [ { "id": "color", "value": { "fixedColor": "red", "mode": "fixed" } }, { "id": "custom.axisPlacement", "value": "right" } ] } ] }, "gridPos": { "h": 8, "w": 8, "x": 0, "y": 3 }, "id": 28, "interval": "$minstep", "options": { "legend": { "calcs": [ "min", "max", "mean" ], "displayMode": "table", "placement": "bottom", "showLegend": true }, "tooltip": { "hideZeros": false, "mode": "multi", "sort": "none" } }, "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "sum(${metric:value}(otelcol_receiver_accepted_spans${suffix_total}{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", "format": "time_series", "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Accepted: {{receiver}} {{transport}} {{service_instance_id}}", "range": true, "refId": "A" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "sum(${metric:value}(otelcol_receiver_refused_spans${suffix_total}{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Refused: {{receiver}} {{transport}} {{service_instance_id}}", "range": true, "refId": "B" } ], "title": "Spans ${metric:text}", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "description": "Accepted: count/rate of metric points successfully pushed into the pipeline.\nRefused: count/rate of metric points that could not be pushed into the pipeline.", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "links": [], "mappings": [], "min": 0, "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "short" }, "overrides": [ { "matcher": { "id": "byRegexp", "options": "/Refused.*/" }, "properties": [ { "id": "color", "value": { "fixedColor": "red", "mode": "fixed" } }, { "id": "custom.axisPlacement", "value": "right" } ] } ] }, "gridPos": { "h": 8, "w": 8, "x": 8, "y": 3 }, "id": 80, "interval": "$minstep", "options": { "legend": { "calcs": [ "min", "max", "mean" ], "displayMode": "table", "placement": "bottom", "showLegend": true }, "tooltip": { "hideZeros": false, "mode": "multi", "sort": "none" } }, "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "sum(${metric:value}(otelcol_receiver_accepted_metric_points${suffix_total}{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", "format": "time_series", "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Accepted: {{receiver}} {{transport}} {{service_instance_id}}", "range": true, "refId": "A" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "sum(${metric:value}(otelcol_receiver_refused_metric_points${suffix_total}{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Refused: {{receiver}} {{transport}} {{service_instance_id}}", "range": true, "refId": "B" } ], "title": "Metric Points ${metric:text}", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "description": "Accepted: count/rate of log records successfully pushed into the pipeline.\nRefused: count/rate of log records that could not be pushed into the pipeline.", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "links": [], "mappings": [], "min": 0, "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "short" }, "overrides": [ { "matcher": { "id": "byRegexp", "options": "/Refused.*/" }, "properties": [ { "id": "color", "value": { "fixedColor": "red", "mode": "fixed" } }, { "id": "custom.axisPlacement", "value": "right" } ] } ] }, "gridPos": { "h": 8, "w": 8, "x": 16, "y": 3 }, "id": 47, "interval": "$minstep", "options": { "legend": { "calcs": [ "min", "max", "mean" ], "displayMode": "table", "placement": "bottom", "showLegend": true }, "tooltip": { "hideZeros": false, "mode": "multi", "sort": "none" } }, "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "sum(${metric:value}(otelcol_receiver_accepted_log_records${suffix_total}{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", "format": "time_series", "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Accepted: {{receiver}} {{transport}} {{service_instance_id}}", "range": true, "refId": "A" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "sum(${metric:value}(otelcol_receiver_refused_log_records${suffix_total}{receiver=~\"$receiver\",job=\"$job\"}[$__rate_interval])) by (receiver $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Refused: {{receiver}} {{transport}} {{service_instance_id}}", "range": true, "refId": "B" } ], "title": "Log Records ${metric:text}", "type": "timeseries" }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 11 }, "id": 34, "panels": [], "title": "Processors", "type": "row" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "description": "", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "links": [], "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "short" }, "overrides": [ { "matcher": { "id": "byRegexp", "options": "/Refused.*/" }, "properties": [ { "id": "color", "value": { "fixedColor": "red", "mode": "fixed" } }, { "id": "custom.axisPlacement", "value": "right" } ] }, { "matcher": { "id": "byRegexp", "options": "/Dropped.*/" }, "properties": [ { "id": "color", "value": { "fixedColor": "purple", "mode": "fixed" } }, { "id": "custom.axisPlacement", "value": "right" } ] } ] }, "gridPos": { "h": 8, "w": 8, "x": 0, "y": 12 }, "id": 85, "interval": "$minstep", "options": { "legend": { "calcs": [ "min", "max", "mean" ], "displayMode": "table", "placement": "bottom", "showLegend": true }, "tooltip": { "hideZeros": false, "mode": "multi", "sort": "desc" } }, "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "sum(${metric:value}(otelcol_processor_incoming_items${suffix_total}{processor=~\"$processor\",job=\"$job\",otel_signal=\"traces\"}[$__rate_interval])) by (processor $grouping)", "format": "time_series", "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Incomming: {{processor}} {{service_instance_id}}", "range": true, "refId": "A" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "0-sum(${metric:value}(otelcol_processor_outgoing_items${suffix_total}{processor=~\"$processor\",job=\"$job\",otel_signal=\"traces\"}[$__rate_interval])) by (processor $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Outgoing: {{processor}} {{service_instance_id}}", "range": true, "refId": "B" } ], "title": "Spans ${metric:text}", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "description": "", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "links": [], "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "short" }, "overrides": [ { "matcher": { "id": "byRegexp", "options": "/Refused.*/" }, "properties": [ { "id": "color", "value": { "fixedColor": "red", "mode": "fixed" } }, { "id": "custom.axisPlacement", "value": "right" } ] }, { "matcher": { "id": "byRegexp", "options": "/Dropped.*/" }, "properties": [ { "id": "color", "value": { "fixedColor": "purple", "mode": "fixed" } }, { "id": "custom.axisPlacement", "value": "right" } ] } ] }, "gridPos": { "h": 8, "w": 8, "x": 8, "y": 12 }, "id": 83, "interval": "$minstep", "options": { "legend": { "calcs": [ "min", "max", "mean" ], "displayMode": "table", "placement": "bottom", "showLegend": true }, "tooltip": { "hideZeros": false, "mode": "multi", "sort": "desc" } }, "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "sum(${metric:value}(otelcol_processor_incoming_items${suffix_total}{processor=~\"$processor\",job=\"$job\",otel_signal=\"metrics\"}[$__rate_interval])) by (processor $grouping)", "format": "time_series", "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Incomming: {{processor}} {{service_instance_id}}", "range": true, "refId": "A" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "0-sum(${metric:value}(otelcol_processor_outgoing_items${suffix_total}{processor=~\"$processor\",job=\"$job\",otel_signal=\"metrics\"}[$__rate_interval])) by (processor $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Outgoing: {{processor}} {{service_instance_id}}", "range": true, "refId": "B" } ], "title": "Metric Points ${metric:text}", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "description": "", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "links": [], "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "short" }, "overrides": [ { "matcher": { "id": "byRegexp", "options": "/Refused.*/" }, "properties": [ { "id": "color", "value": { "fixedColor": "red", "mode": "fixed" } }, { "id": "custom.axisPlacement", "value": "right" } ] }, { "matcher": { "id": "byRegexp", "options": "/Dropped.*/" }, "properties": [ { "id": "color", "value": { "fixedColor": "purple", "mode": "fixed" } }, { "id": "custom.axisPlacement", "value": "right" } ] } ] }, "gridPos": { "h": 8, "w": 8, "x": 16, "y": 12 }, "id": 84, "interval": "$minstep", "options": { "legend": { "calcs": [ "min", "max", "mean" ], "displayMode": "table", "placement": "bottom", "showLegend": true }, "tooltip": { "hideZeros": false, "mode": "multi", "sort": "desc" } }, "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "sum(${metric:value}(otelcol_processor_incoming_items${suffix_total}{processor=~\"$processor\",job=\"$job\",otel_signal=\"logs\"}[$__rate_interval])) by (processor $grouping)", "format": "time_series", "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Incomming: {{processor}} {{service_instance_id}}", "range": true, "refId": "A" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "0-sum(${metric:value}(otelcol_processor_outgoing_items${suffix_total}{processor=~\"$processor\",job=\"$job\",otel_signal=\"logs\"}[$__rate_interval])) by (processor $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Outgoing: {{processor}} {{service_instance_id}}", "range": true, "refId": "B" } ], "title": "Logs Records ${metric:text}", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "description": "Accepted: count/rate of spans successfully pushed into the next component in the pipeline.\nRefused: count/rate of spans that were rejected by the next component in the pipeline.\nDropped: count/rate of spans that were dropped", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "links": [], "mappings": [], "min": 0, "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "short" }, "overrides": [ { "matcher": { "id": "byRegexp", "options": "/Refused.*/" }, "properties": [ { "id": "color", "value": { "fixedColor": "red", "mode": "fixed" } }, { "id": "custom.axisPlacement", "value": "right" } ] }, { "matcher": { "id": "byRegexp", "options": "/Dropped.*/" }, "properties": [ { "id": "color", "value": { "fixedColor": "purple", "mode": "fixed" } }, { "id": "custom.axisPlacement", "value": "right" } ] } ] }, "gridPos": { "h": 8, "w": 8, "x": 0, "y": 20 }, "id": 35, "interval": "$minstep", "options": { "legend": { "calcs": [ "min", "max", "mean" ], "displayMode": "table", "placement": "bottom", "showLegend": true }, "tooltip": { "hideZeros": false, "mode": "multi", "sort": "none" } }, "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "sum(${metric:value}(otelcol_processor_accepted_spans${suffix_total}{processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (processor $grouping)", "format": "time_series", "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Accepted: {{processor}} {{service_instance_id}}", "range": true, "refId": "A" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "sum(${metric:value}(otelcol_processor_refused_spans${suffix_total}{processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (processor $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Refused: {{processor}} {{service_instance_id}}", "range": true, "refId": "B" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "sum(${metric:value}(otelcol_processor_dropped_spans${suffix_total}{processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (processor $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Dropped: {{processor}} {{service_instance_id}}", "range": true, "refId": "C" } ], "title": "Accepted Spans ${metric:text}", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "description": "Accepted: count/rate of metric points successfully pushed into the next component in the pipeline.\nRefused: count/rate of metric points that were rejected by the next component in the pipeline.\nDropped: count/rate of metric points that were dropped", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "links": [], "mappings": [], "min": 0, "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "short" }, "overrides": [ { "matcher": { "id": "byRegexp", "options": "/Refused.*/" }, "properties": [ { "id": "color", "value": { "fixedColor": "red", "mode": "fixed" } }, { "id": "custom.axisPlacement", "value": "right" } ] }, { "matcher": { "id": "byRegexp", "options": "/Dropped.*/" }, "properties": [ { "id": "color", "value": { "fixedColor": "purple", "mode": "fixed" } }, { "id": "custom.axisPlacement", "value": "right" } ] } ] }, "gridPos": { "h": 8, "w": 8, "x": 8, "y": 20 }, "id": 50, "interval": "$minstep", "options": { "legend": { "calcs": [ "min", "max", "mean" ], "displayMode": "table", "placement": "bottom", "showLegend": true }, "tooltip": { "hideZeros": false, "mode": "multi", "sort": "none" } }, "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "sum(${metric:value}(otelcol_processor_accepted_metric_points${suffix_total}{processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (processor $grouping)", "format": "time_series", "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Accepted: {{processor}} {{service_instance_id}}", "range": true, "refId": "A" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "sum(${metric:value}(otelcol_processor_refused_metric_points${suffix_total}{processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (processor $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Refused: {{processor}} {{service_instance_id}}", "range": true, "refId": "B" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "sum(${metric:value}(otelcol_processor_dropped_metric_points${suffix_total}{processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (processor)", "format": "time_series", "hide": false, "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Dropped: {{processor}} {{service_instance_id}}", "range": true, "refId": "C" } ], "title": "Accepted Metric Points ${metric:text}", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "description": "Accepted: count/rate of log records successfully pushed into the next component in the pipeline.\nRefused: count/rate of log records that were rejected by the next component in the pipeline.\nDropped: count/rate of log records that were dropped", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "links": [], "mappings": [], "min": 0, "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "short" }, "overrides": [ { "matcher": { "id": "byRegexp", "options": "/Refused.*/" }, "properties": [ { "id": "color", "value": { "fixedColor": "red", "mode": "fixed" } }, { "id": "custom.axisPlacement", "value": "right" } ] }, { "matcher": { "id": "byRegexp", "options": "/Dropped.*/" }, "properties": [ { "id": "color", "value": { "fixedColor": "purple", "mode": "fixed" } }, { "id": "custom.axisPlacement", "value": "right" } ] } ] }, "gridPos": { "h": 8, "w": 8, "x": 16, "y": 20 }, "id": 51, "interval": "$minstep", "options": { "legend": { "calcs": [ "min", "max", "mean" ], "displayMode": "table", "placement": "bottom", "showLegend": true }, "tooltip": { "hideZeros": false, "mode": "multi", "sort": "none" } }, "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "sum(${metric:value}(otelcol_processor_accepted_log_records${suffix_total}{processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (processor $grouping)", "format": "time_series", "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Accepted: {{processor}} {{service_instance_id}}", "range": true, "refId": "A" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "sum(${metric:value}(otelcol_processor_refused_log_records${suffix_total}{processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (processor $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Refused: {{processor}} {{service_instance_id}}", "range": true, "refId": "B" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "sum(${metric:value}(otelcol_processor_dropped_log_records${suffix_total}{processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (processor)", "format": "time_series", "hide": false, "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Dropped: {{processor}} {{service_instance_id}}", "range": true, "refId": "C" } ], "title": "Accepted Log Records ${metric:text}", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "description": "Number of units in the batch", "fieldConfig": { "defaults": { "custom": { "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "scaleDistribution": { "type": "linear" } }, "links": [] }, "overrides": [] }, "gridPos": { "h": 8, "w": 8, "x": 0, "y": 28 }, "id": 49, "interval": "$minstep", "maxDataPoints": 50, "options": { "calculate": false, "cellGap": 1, "color": { "exponent": 0.5, "fill": "dark-orange", "mode": "scheme", "reverse": true, "scale": "exponential", "scheme": "Reds", "steps": 57 }, "exemplars": { "color": "rgba(255,0,255,0.7)" }, "filterValues": { "le": 1e-9 }, "legend": { "show": true }, "rowsFrame": { "layout": "auto" }, "tooltip": { "mode": "single", "showColorScale": false, "yHistogram": false }, "yAxis": { "axisPlacement": "left", "reverse": false } }, "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "sum(increase(otelcol_processor_batch_batch_send_size_bucket{processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (le)", "format": "heatmap", "hide": false, "instant": false, "interval": "$minstep", "intervalFactor": 1, "legendFormat": "{{le}}", "refId": "B" } ], "title": "Batch Send Size Heatmap", "type": "heatmap" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "description": "", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "links": [], "mappings": [], "min": 0, "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "short" }, "overrides": [ { "matcher": { "id": "byRegexp", "options": "/.*count.*/" }, "properties": [ { "id": "custom.axisPlacement", "value": "right" } ] } ] }, "gridPos": { "h": 8, "w": 8, "x": 8, "y": 28 }, "id": 36, "interval": "$minstep", "options": { "legend": { "calcs": [ "min", "max", "mean" ], "displayMode": "table", "placement": "bottom", "showLegend": true }, "tooltip": { "hideZeros": false, "mode": "multi", "sort": "none" } }, "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "sum(${metric:value}(otelcol_processor_batch_batch_send_size_count{processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (processor $grouping)", "format": "time_series", "hide": false, "instant": false, "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Batch send size count: {{processor}} {{service_instance_id}}", "refId": "B" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "sum(${metric:value}(otelcol_processor_batch_batch_send_size_sum{processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (processor $grouping)", "format": "time_series", "hide": false, "instant": false, "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Batch send size sum: {{processor}} {{service_instance_id}}", "refId": "A" } ], "title": "Batch Metrics 1", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "description": "Number of times the batch was sent due to a size trigger. Number of times the batch was sent due to a timeout trigger.", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "links": [], "mappings": [], "min": 0, "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "short" }, "overrides": [ { "matcher": { "id": "byRegexp", "options": "/.*timeout.*/" }, "properties": [ { "id": "custom.axisPlacement", "value": "right" } ] } ] }, "gridPos": { "h": 8, "w": 8, "x": 16, "y": 28 }, "id": 56, "interval": "$minstep", "options": { "legend": { "calcs": [ "min", "max", "mean" ], "displayMode": "table", "placement": "bottom", "showLegend": true }, "tooltip": { "hideZeros": false, "mode": "multi", "sort": "none" } }, "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "sum(${metric:value}(otelcol_processor_batch_batch_size_trigger_send${suffix_total}{processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (processor $grouping)", "format": "time_series", "hide": false, "instant": false, "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Batch sent due to a size trigger: {{processor}}", "refId": "B" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "sum(${metric:value}(otelcol_processor_batch_timeout_trigger_send${suffix_total}{processor=~\"$processor\",job=\"$job\"}[$__rate_interval])) by (processor $grouping)", "format": "time_series", "hide": false, "instant": false, "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Batch sent due to a timeout trigger: {{processor}} {{service_instance_id}}", "refId": "A" } ], "title": "Batch Metrics 2", "type": "timeseries" }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 36 }, "id": 25, "panels": [], "title": "Exporters", "type": "row" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "description": "Sent: count/rate of spans successfully sent to destination.\nEnqueue: count/rate of spans failed to be added to the sending queue.\nFailed: count/rate of spans in failed attempts to send to destination.", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "links": [], "mappings": [], "min": 0, "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "short" }, "overrides": [ { "matcher": { "id": "byRegexp", "options": "/Failed:.*/" }, "properties": [ { "id": "color", "value": { "fixedColor": "red", "mode": "fixed" } }, { "id": "custom.axisPlacement", "value": "right" } ] } ] }, "gridPos": { "h": 9, "w": 8, "x": 0, "y": 37 }, "id": 37, "interval": "$minstep", "options": { "legend": { "calcs": [ "min", "max", "mean" ], "displayMode": "table", "placement": "bottom", "showLegend": true }, "tooltip": { "hideZeros": false, "mode": "multi", "sort": "none" } }, "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "sum(${metric:value}(otelcol_exporter_sent_spans${suffix_total}{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", "format": "time_series", "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Sent: {{exporter}} {{service_instance_id}}", "range": true, "refId": "A" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "sum(${metric:value}(otelcol_exporter_enqueue_failed_spans${suffix_total}{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Enqueue: {{exporter}} {{service_instance_id}}", "range": true, "refId": "B" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "sum(${metric:value}(otelcol_exporter_send_failed_spans${suffix_total}{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Failed: {{exporter}} {{service_instance_id}}", "range": true, "refId": "C" } ], "title": "Spans ${metric:text}", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "description": "Sent: count/rate of metric points successfully sent to destination.\nEnqueue: count/rate of metric points failed to be added to the sending queue.\nFailed: count/rate of metric points in failed attempts to send to destination.", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "links": [], "mappings": [], "min": 0, "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "short" }, "overrides": [ { "matcher": { "id": "byRegexp", "options": "/Failed:.*/" }, "properties": [ { "id": "color", "value": { "fixedColor": "red", "mode": "fixed" } }, { "id": "custom.axisPlacement", "value": "right" } ] } ] }, "gridPos": { "h": 9, "w": 8, "x": 8, "y": 37 }, "id": 38, "interval": "$minstep", "options": { "legend": { "calcs": [ "min", "max", "mean" ], "displayMode": "table", "placement": "bottom", "showLegend": true }, "tooltip": { "hideZeros": false, "mode": "multi", "sort": "none" } }, "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "sum(${metric:value}(otelcol_exporter_sent_metric_points${suffix_total}{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", "format": "time_series", "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Sent: {{exporter}} {{service_instance_id}}", "range": true, "refId": "A" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "sum(${metric:value}(otelcol_exporter_enqueue_failed_metric_points${suffix_total}{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Enqueue: {{exporter}} {{service_instance_id}}", "range": true, "refId": "B" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "sum(${metric:value}(otelcol_exporter_send_failed_metric_points${suffix_total}{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Failed: {{exporter}} {{service_instance_id}}", "range": true, "refId": "C" } ], "title": "Metric Points ${metric:text}", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "description": "Sent: count/rate of log records successfully sent to destination.\nEnqueue: count/rate of log records failed to be added to the sending queue.\nFailed: count/rate of log records in failed attempts to send to destination.", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "links": [], "mappings": [], "min": 0, "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "short" }, "overrides": [ { "matcher": { "id": "byRegexp", "options": "/Failed:.*/" }, "properties": [ { "id": "color", "value": { "fixedColor": "red", "mode": "fixed" } }, { "id": "custom.axisPlacement", "value": "right" } ] } ] }, "gridPos": { "h": 9, "w": 8, "x": 16, "y": 37 }, "id": 48, "interval": "$minstep", "options": { "legend": { "calcs": [ "min", "max", "mean" ], "displayMode": "table", "placement": "bottom", "showLegend": true }, "tooltip": { "hideZeros": false, "mode": "multi", "sort": "none" } }, "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "sum(${metric:value}(otelcol_exporter_sent_log_records${suffix_total}{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", "format": "time_series", "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Sent: {{exporter}} {{service_instance_id}}", "range": true, "refId": "A" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "sum(${metric:value}(otelcol_exporter_enqueue_failed_log_records${suffix_total}{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Enqueue: {{exporter}} {{service_instance_id}}", "range": true, "refId": "B" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "sum(${metric:value}(otelcol_exporter_send_failed_log_records${suffix_total}{exporter=~\"$exporter\",job=\"$job\"}[$__rate_interval])) by (exporter $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Failed: {{exporter}} {{service_instance_id}}", "range": true, "refId": "C" } ], "title": "Log Records ${metric:text}", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "description": "Current size of the retry queue (in batches)", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "links": [], "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "short" }, "overrides": [] }, "gridPos": { "h": 9, "w": 8, "x": 0, "y": 46 }, "id": 10, "options": { "legend": { "calcs": [ "min", "max", "mean" ], "displayMode": "table", "placement": "bottom", "showLegend": true }, "tooltip": { "hideZeros": false, "mode": "multi", "sort": "none" } }, "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "max(otelcol_exporter_queue_size{exporter=~\"$exporter\",job=\"$job\"}) by (exporter $grouping)", "format": "time_series", "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Max queue size: {{exporter}} {{service_instance_id}}", "range": true, "refId": "A" } ], "title": "Exporter Queue Size", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "description": "Fixed capacity of the retry queue (in batches)", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "links": [], "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "short" }, "overrides": [] }, "gridPos": { "h": 9, "w": 8, "x": 8, "y": 46 }, "id": 55, "options": { "legend": { "calcs": [ "min", "max", "mean" ], "displayMode": "table", "placement": "bottom", "showLegend": true }, "tooltip": { "hideZeros": false, "mode": "multi", "sort": "none" } }, "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "min(otelcol_exporter_queue_capacity{exporter=~\"$exporter\",job=\"$job\"}) by (exporter $grouping)", "format": "time_series", "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Queue capacity: {{exporter}} {{service_instance_id}}", "range": true, "refId": "A" } ], "title": "Exporter Queue Capacity", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "description": "", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "links": [], "mappings": [], "max": 1, "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "percentunit" }, "overrides": [] }, "gridPos": { "h": 9, "w": 8, "x": 16, "y": 46 }, "id": 67, "options": { "legend": { "calcs": [ "min", "max", "mean" ], "displayMode": "table", "placement": "bottom", "showLegend": true }, "tooltip": { "hideZeros": false, "mode": "multi", "sort": "none" } }, "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "max(\r\n otelcol_exporter_queue_size{\r\n exporter=~\"$exporter\", job=\"$job\"\r\n }\r\n) by (exporter $grouping)\r\n/\r\nmin(\r\n otelcol_exporter_queue_capacity{\r\n exporter=~\"$exporter\", job=\"$job\"\r\n }\r\n) by (exporter $grouping)", "format": "time_series", "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Queue capacity usage: {{exporter}} {{service_instance_id}}", "range": true, "refId": "A" } ], "title": "Exporter Queue Usage", "type": "timeseries" }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 55 }, "id": 21, "panels": [], "title": "Collector", "type": "row" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "description": "Total physical memory (resident set size)", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "links": [], "mappings": [], "min": 0, "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "bytes" }, "overrides": [ { "matcher": { "id": "byName", "options": "Max Memory RSS " }, "properties": [ { "id": "color", "value": { "fixedColor": "red", "mode": "fixed" } }, { "id": "custom.fillBelowTo", "value": "Avg Memory RSS " }, { "id": "custom.lineWidth", "value": 0 }, { "id": "custom.fillOpacity", "value": 20 } ] }, { "matcher": { "id": "byName", "options": "Min Memory RSS " }, "properties": [ { "id": "color", "value": { "fixedColor": "yellow", "mode": "fixed" } }, { "id": "custom.lineWidth", "value": 0 } ] }, { "matcher": { "id": "byName", "options": "Avg Memory RSS " }, "properties": [ { "id": "color", "value": { "fixedColor": "orange", "mode": "fixed" } }, { "id": "custom.fillBelowTo", "value": "Min Memory RSS " }, { "id": "custom.fillOpacity", "value": 20 } ] } ] }, "gridPos": { "h": 9, "w": 8, "x": 0, "y": 56 }, "id": 40, "interval": "$minstep", "options": { "legend": { "calcs": [ "min", "max", "mean" ], "displayMode": "table", "placement": "bottom", "showLegend": true }, "tooltip": { "hideZeros": false, "mode": "multi", "sort": "none" } }, "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "max(otelcol_process_memory_rss${suffix_bytes}{job=\"$job\"}) by (job $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Max Memory RSS {{service_instance_id}}", "range": true, "refId": "C" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "avg(otelcol_process_memory_rss${suffix_bytes}{job=\"$job\"}) by (job $grouping)", "format": "time_series", "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Avg Memory RSS {{service_instance_id}}", "range": true, "refId": "A" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "min(otelcol_process_memory_rss${suffix_bytes}{job=\"$job\"}) by (job $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Min Memory RSS {{service_instance_id}}", "range": true, "refId": "B" } ], "title": "Total RSS Memory", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "description": "Total bytes of memory obtained from the OS (see 'go doc runtime.MemStats.Sys')", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "links": [], "mappings": [], "min": 0, "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "bytes" }, "overrides": [ { "matcher": { "id": "byName", "options": "Max Memory RSS " }, "properties": [ { "id": "color", "value": { "fixedColor": "red", "mode": "fixed" } }, { "id": "custom.fillBelowTo", "value": "Avg Memory RSS " }, { "id": "custom.lineWidth", "value": 0 }, { "id": "custom.fillOpacity", "value": 20 } ] }, { "matcher": { "id": "byName", "options": "Min Memory RSS " }, "properties": [ { "id": "color", "value": { "fixedColor": "yellow", "mode": "fixed" } }, { "id": "custom.lineWidth", "value": 0 } ] }, { "matcher": { "id": "byName", "options": "Avg Memory RSS " }, "properties": [ { "id": "color", "value": { "fixedColor": "orange", "mode": "fixed" } }, { "id": "custom.fillBelowTo", "value": "Min Memory RSS " }, { "id": "custom.fillOpacity", "value": 20 } ] } ] }, "gridPos": { "h": 9, "w": 8, "x": 8, "y": 56 }, "id": 52, "interval": "$minstep", "options": { "legend": { "calcs": [ "min", "max", "mean" ], "displayMode": "table", "placement": "bottom", "showLegend": true }, "tooltip": { "hideZeros": false, "mode": "multi", "sort": "none" } }, "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "max(otelcol_process_runtime_total_sys_memory_bytes{job=\"$job\"}) by (job $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Max Memory RSS {{service_instance_id}}", "range": true, "refId": "C" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "avg(otelcol_process_runtime_total_sys_memory_bytes{job=\"$job\"}) by (job $grouping)", "format": "time_series", "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Avg Memory RSS {{service_instance_id}}", "range": true, "refId": "A" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "min(otelcol_process_runtime_total_sys_memory_bytes{job=\"$job\"}) by (job $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Min Memory RSS {{service_instance_id}}", "range": true, "refId": "B" } ], "title": "Total Runtime Sys Memory", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "description": "Bytes of allocated heap objects (see 'go doc runtime.MemStats.HeapAlloc')", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "links": [], "mappings": [], "min": 0, "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "bytes" }, "overrides": [ { "matcher": { "id": "byName", "options": "Max Memory RSS " }, "properties": [ { "id": "color", "value": { "fixedColor": "red", "mode": "fixed" } }, { "id": "custom.fillBelowTo", "value": "Avg Memory RSS " }, { "id": "custom.lineWidth", "value": 0 }, { "id": "custom.fillOpacity", "value": 20 } ] }, { "matcher": { "id": "byName", "options": "Min Memory RSS " }, "properties": [ { "id": "color", "value": { "fixedColor": "yellow", "mode": "fixed" } }, { "id": "custom.lineWidth", "value": 0 } ] }, { "matcher": { "id": "byName", "options": "Avg Memory RSS " }, "properties": [ { "id": "color", "value": { "fixedColor": "orange", "mode": "fixed" } }, { "id": "custom.fillBelowTo", "value": "Min Memory RSS " }, { "id": "custom.fillOpacity", "value": 20 } ] } ] }, "gridPos": { "h": 9, "w": 8, "x": 16, "y": 56 }, "id": 53, "interval": "$minstep", "options": { "legend": { "calcs": [ "min", "max", "mean" ], "displayMode": "table", "placement": "bottom", "showLegend": true }, "tooltip": { "hideZeros": false, "mode": "multi", "sort": "none" } }, "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "max(otelcol_process_runtime_heap_alloc_bytes{job=\"$job\"}) by (job $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Max Memory RSS {{service_instance_id}}", "range": true, "refId": "C" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "avg(otelcol_process_runtime_heap_alloc_bytes{job=\"$job\"}) by (job $grouping)", "format": "time_series", "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Avg Memory RSS {{service_instance_id}}", "range": true, "refId": "A" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "min(otelcol_process_runtime_heap_alloc_bytes{job=\"$job\"}) by (job $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Min Memory RSS {{service_instance_id}}", "range": true, "refId": "B" } ], "title": "Total Runtime Heap Memory", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "description": "Total CPU user and system time in percentage", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "links": [], "mappings": [], "min": 0, "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "percent" }, "overrides": [ { "matcher": { "id": "byName", "options": "Max CPU usage " }, "properties": [ { "id": "color", "value": { "fixedColor": "red", "mode": "fixed" } }, { "id": "custom.fillBelowTo", "value": "Avg CPU usage " }, { "id": "custom.lineWidth", "value": 0 }, { "id": "custom.fillOpacity", "value": 20 } ] }, { "matcher": { "id": "byName", "options": "Avg CPU usage " }, "properties": [ { "id": "color", "value": { "fixedColor": "orange", "mode": "fixed" } }, { "id": "custom.fillBelowTo", "value": "Min CPU usage " } ] }, { "matcher": { "id": "byName", "options": "Min CPU usage " }, "properties": [ { "id": "color", "value": { "fixedColor": "yellow", "mode": "fixed" } }, { "id": "custom.lineWidth", "value": 0 } ] } ] }, "gridPos": { "h": 9, "w": 8, "x": 0, "y": 65 }, "id": 39, "interval": "$minstep", "options": { "legend": { "calcs": [ "min", "max", "mean" ], "displayMode": "table", "placement": "bottom", "showLegend": true }, "tooltip": { "hideZeros": false, "mode": "multi", "sort": "none" } }, "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "max(rate(otelcol_process_cpu_seconds${suffix_total}{job=\"$job\"}[$__rate_interval])*100) by (job $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Max CPU usage {{service_instance_id}}", "range": true, "refId": "B" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "avg(rate(otelcol_process_cpu_seconds${suffix_total}{job=\"$job\"}[$__rate_interval])*100) by (job $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Avg CPU usage {{service_instance_id}}", "range": true, "refId": "A" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "min(rate(otelcol_process_cpu_seconds${suffix_total}{job=\"$job\"}[$__rate_interval])*100) by (job $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Min CPU usage {{service_instance_id}}", "range": true, "refId": "C" } ], "title": "CPU Usage", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "description": "Number of service instances, which are reporting metrics", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "decimals": 0, "links": [], "mappings": [], "min": 0, "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "short" }, "overrides": [] }, "gridPos": { "h": 9, "w": 8, "x": 8, "y": 65 }, "id": 41, "interval": "$minstep", "options": { "legend": { "calcs": [ "min", "max", "mean" ], "displayMode": "table", "placement": "bottom", "showLegend": true }, "tooltip": { "hideZeros": false, "mode": "multi", "sort": "none" } }, "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "count(count(otelcol_process_cpu_seconds${suffix_total}{service_instance_id=~\".*\",job=\"$job\"}) by (service_instance_id))", "format": "time_series", "hide": false, "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Service instance count", "range": true, "refId": "B" } ], "title": "Service Instance Count", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "description": "", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "links": [], "mappings": [], "min": 0, "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "s" }, "overrides": [] }, "gridPos": { "h": 9, "w": 8, "x": 16, "y": 65 }, "id": 54, "interval": "$minstep", "options": { "legend": { "calcs": [ "min", "max", "mean" ], "displayMode": "table", "placement": "bottom", "showLegend": true }, "tooltip": { "hideZeros": false, "mode": "multi", "sort": "none" } }, "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "max(otelcol_process_uptime${suffix_seconds}${suffix_total}{service_instance_id=~\".*\",job=\"$job\"}) by (service_instance_id)", "format": "time_series", "hide": false, "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Service instance uptime: {{service_instance_id}}", "range": true, "refId": "B" } ], "title": "Uptime by Service Instance", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "description": "", "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "custom": { "align": "auto", "cellOptions": { "type": "auto" }, "inspect": false }, "links": [], "mappings": [], "min": 0, "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "s" }, "overrides": [] }, "gridPos": { "h": 5, "w": 24, "x": 0, "y": 74 }, "id": 57, "interval": "$minstep", "options": { "cellHeight": "sm", "footer": { "countRows": false, "fields": "", "reducer": [ "sum" ], "show": false }, "showHeader": true }, "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "max(otelcol_process_uptime${suffix_seconds}${suffix_total}{service_instance_id=~\".*\",job=\"$job\",service_version=\".+\"}) by (service_instance_id,service_name,service_version)\r\nor\r\nmax(\r\n otelcol_process_uptime${suffix_seconds}${suffix_total}{service_instance_id=~\".*\",job=\"$job\"} \r\n * on(job, instance) \r\n group_left(service_version) \r\n (\r\n target_info \r\n * on(job, instance) \r\n group_left \r\n label_replace(target_info{}, \"service_instance_id\", \"$1\", \"instance\", \"(.*)\")\r\n )\r\n) by (service_instance_id, service_name, service_version)", "format": "table", "hide": false, "instant": true, "interval": "$minstep", "intervalFactor": 1, "legendFormat": "__auto", "range": false, "refId": "B" } ], "title": "Service Instance Details", "transformations": [ { "id": "organize", "options": { "excludeByName": { "Time": true, "Value": true }, "indexByName": {}, "renameByName": {} } } ], "type": "table" }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 79 }, "id": 59, "panels": [], "title": "Signal flows", "type": "row" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "description": "Receivers -> Processor(s) -> Exporters (Node Graph panel is beta, so this panel may not show data correctly).", "fieldConfig": { "defaults": {}, "overrides": [] }, "gridPos": { "h": 9, "w": 8, "x": 0, "y": 80 }, "id": 58, "options": { "edges": {}, "nodes": { "mainStatUnit": "flops" }, "zoomMode": "cooperative" }, "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "# receivers\nlabel_replace(\n label_join(\n label_join(\n sum(${metric:value}(\n otelcol_receiver_accepted_spans${suffix_total}{job=\"$job\"}[$__rate_interval])\n ) by (receiver)\n , \"id\", \"-rcv-\", \"transport\", \"receiver\"\n )\n , \"title\", \"\", \"transport\", \"receiver\"\n )\n , \"icon\", \"arrow-to-right\", \"\", \"\"\n)\n\n# dummy processor\nor\nlabel_replace(\n label_replace(\n label_replace(\n (sum(rate(otelcol_process_uptime${suffix_seconds}${suffix_total}{job=\"$job\"}[$__rate_interval])))\n , \"id\", \"processor\", \"\", \"\"\n )\n , \"title\", \"Processor(s)\", \"\", \"\"\n )\n , \"icon\", \"arrow-random\", \"\", \"\"\n)\n\n# exporters\nor\nlabel_replace(\n label_join(\n label_join(\n sum(${metric:value}(\n otelcol_exporter_sent_spans${suffix_total}{job=\"$job\"}[$__rate_interval])\n ) by (exporter)\n , \"id\", \"-exp-\", \"transport\", \"exporter\"\n )\n , \"title\", \"\", \"transport\", \"exporter\"\n )\n , \"icon\", \"arrow-from-right\", \"\", \"\"\n)", "format": "table", "hide": false, "instant": true, "legendFormat": "__auto", "range": false, "refId": "nodes" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "# receivers -> processor\r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_receiver_accepted_spans${suffix_total}{job=\"$job\"}[$__rate_interval])) by (receiver))\r\n ,\"source\", \"-rcv-\", \"transport\", \"receiver\"\r\n )\r\n ,\"target\", \"processor\", \"\", \"\"\r\n )\r\n , \"id\", \"-\", \"source\", \"target\"\r\n)\r\n\r\n# processor -> exporters\r\nor\r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_exporter_sent_spans${suffix_total}{job=\"$job\"}[$__rate_interval])) by (exporter))\r\n , \"target\", \"-exp-\", \"transport\", \"exporter\"\r\n )\r\n , \"source\", \"processor\", \"\", \"\"\r\n )\r\n , \"id\", \"-\", \"source\", \"target\"\r\n)", "format": "table", "hide": false, "instant": true, "legendFormat": "__auto", "range": false, "refId": "edges" } ], "title": "Spans Flow", "transformations": [ { "id": "renameByRegex", "options": { "regex": "Value", "renamePattern": "mainstat" } }, { "disabled": true, "id": "calculateField", "options": { "alias": "secondarystat", "mode": "reduceRow", "reduce": { "include": [ "mainstat" ], "reducer": "sum" } } } ], "type": "nodeGraph" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "description": "Receivers -> Processor(s) -> Exporters (Node Graph panel is beta, so this panel may not show data correctly).", "fieldConfig": { "defaults": {}, "overrides": [] }, "gridPos": { "h": 9, "w": 8, "x": 8, "y": 80 }, "id": 60, "options": { "edges": {}, "nodes": { "mainStatUnit": "none" }, "zoomMode": "cooperative" }, "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "# receivers\nlabel_replace(\n label_join(\n label_join(\n (sum(\n ${metric:value}(otelcol_receiver_accepted_metric_points${suffix_total}{job=\"$job\"}[$__rate_interval])\n ) by (receiver))\n , \"id\", \"-rcv-\", \"transport\", \"receiver\"\n )\n , \"title\", \"\", \"transport\", \"receiver\"\n )\n , \"icon\", \"arrow-to-right\", \"\", \"\"\n)\n\n# dummy processor\nor\nlabel_replace(\n label_replace(\n label_replace(\n (sum(rate(otelcol_process_uptime${suffix_seconds}${suffix_total}{job=\"$job\"}[$__rate_interval])))\n , \"id\", \"processor\", \"\", \"\"\n )\n , \"title\", \"Processor(s)\", \"\", \"\"\n )\n , \"icon\", \"arrow-random\", \"\", \"\"\n)\n\n# exporters\nor\nlabel_replace(\n label_join(\n label_join(\n (sum(\n ${metric:value}(otelcol_exporter_sent_metric_points${suffix_total}{job=\"$job\"}[$__rate_interval])\n ) by (exporter))\n , \"id\", \"-exp-\", \"transport\", \"exporter\"\n )\n , \"title\", \"\", \"transport\", \"exporter\"\n )\n , \"icon\", \"arrow-from-right\", \"\", \"\"\n)", "format": "table", "hide": false, "instant": true, "legendFormat": "__auto", "range": false, "refId": "nodes" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "# receivers -> processor\r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_receiver_accepted_metric_points${suffix_total}{job=\"$job\"}[$__rate_interval])) by (receiver))\r\n , \"source\", \"-rcv-\", \"transport\", \"receiver\"\r\n )\r\n , \"target\", \"processor\", \"\", \"\"\r\n )\r\n , \"id\", \"-\", \"source\", \"target\"\r\n)\r\n\r\n# processor -> exporters\r\nor \r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_exporter_sent_metric_points${suffix_total}{job=\"$job\"}[$__rate_interval])) by (exporter))\r\n , \"target\", \"-exp-\", \"transport\", \"exporter\"\r\n )\r\n , \"source\", \"processor\", \"\", \"\"\r\n )\r\n , \"id\", \"-\", \"source\", \"target\"\r\n)", "format": "table", "hide": false, "instant": true, "legendFormat": "__auto", "range": false, "refId": "edges" } ], "title": "Metric Points Flow", "transformations": [ { "id": "renameByRegex", "options": { "regex": "Value", "renamePattern": "mainstat" } }, { "disabled": true, "id": "calculateField", "options": { "alias": "secondarystat", "mode": "reduceRow", "reduce": { "include": [ "Value #nodes" ], "reducer": "sum" } } } ], "type": "nodeGraph" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "description": "Receivers -> Processor(s) -> Exporters (Node Graph panel is beta, so this panel may not show data correctly).", "fieldConfig": { "defaults": {}, "overrides": [] }, "gridPos": { "h": 9, "w": 8, "x": 16, "y": 80 }, "id": 61, "options": { "edges": {}, "nodes": { "mainStatUnit": "flops" }, "zoomMode": "cooperative" }, "pluginVersion": "11.5.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "# receivers\nlabel_replace(\n label_join(\n label_join(\n sum(${metric:value}(\n otelcol_receiver_accepted_log_records${suffix_total}{job=\"$job\"}[$__rate_interval])\n ) by (receiver)\n , \"id\", \"-rcv-\", \"transport\", \"receiver\"\n )\n , \"title\", \"\", \"transport\", \"receiver\"\n )\n , \"icon\", \"arrow-to-right\", \"\", \"\"\n)\n\n# dummy processor\nor\nlabel_replace(\n label_replace(\n label_replace(\n (sum(rate(otelcol_process_uptime${suffix_seconds}${suffix_total}{job=\"$job\"}[$__rate_interval])))\n , \"id\", \"processor\", \"\", \"\"\n )\n , \"title\", \"Processor(s)\", \"\", \"\"\n )\n , \"icon\", \"arrow-random\", \"\", \"\"\n)\n\n# exporters\nor\nlabel_replace(\n label_join(\n label_join(\n sum(${metric:value}(\n otelcol_exporter_sent_log_records${suffix_total}{job=\"$job\"}[$__rate_interval])\n ) by (exporter)\n , \"id\", \"-exp-\", \"transport\", \"exporter\"\n )\n , \"title\", \"\", \"transport\", \"exporter\"\n )\n , \"icon\", \"arrow-from-right\", \"\", \"\"\n)", "format": "table", "hide": false, "instant": true, "legendFormat": "__auto", "range": false, "refId": "nodes" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "# receivers -> processor\r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_receiver_accepted_log_records${suffix_total}{job=\"$job\"}[$__rate_interval])) by (receiver))\r\n , \"source\", \"-rcv-\", \"transport\", \"receiver\"\r\n )\r\n , \"target\", \"processor\", \"\", \"\"\r\n )\r\n , \"id\", \"-edg-\", \"source\", \"target\"\r\n)\r\n\r\n# processor -> exporters\r\nor \r\nlabel_join(\r\n label_replace(\r\n label_join(\r\n (sum(rate(otelcol_exporter_sent_log_records${suffix_total}{job=\"$job\"}[$__rate_interval])) by (exporter))\r\n ,\"target\",\"-exp-\",\"transport\",\"exporter\"\r\n )\r\n ,\"source\",\"processor\",\"\",\"\"\r\n )\r\n ,\"id\",\"-edg-\",\"source\",\"target\"\r\n)", "format": "table", "hide": false, "instant": true, "legendFormat": "__auto", "range": false, "refId": "edges" } ], "title": "Log Records Flow", "transformations": [ { "id": "renameByRegex", "options": { "regex": "Value", "renamePattern": "mainstat" } }, { "disabled": true, "id": "calculateField", "options": { "alias": "secondarystat", "mode": "reduceRow", "reduce": { "include": [ "mainstat" ], "reducer": "sum" } } } ], "type": "nodeGraph" }, { "collapsed": true, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 89 }, "id": 79, "panels": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "description": "", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "links": [], "mappings": [], "min": 0, "thresholds": { "mode": "absolute", "steps": [ { "color": "green" }, { "color": "red", "value": 80 } ] }, "unit": "short" }, "overrides": [] }, "gridPos": { "h": 8, "w": 8, "x": 0, "y": 88 }, "id": 32, "interval": "$minstep", "options": { "legend": { "calcs": [ "min", "max", "mean" ], "displayMode": "table", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi", "sort": "none" } }, "pluginVersion": "11.3.1", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "sum(${metric:value}(otelcol_processor_filter_spans_filtered${suffix_total}{job=\"$job\"}[$__rate_interval])) by (filter $grouping)", "format": "time_series", "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Filtered: {{filter}} {{transport}} {{service_instance_id}}", "range": true, "refId": "A" } ], "title": "Spans ${metric:text}", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "description": "", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "links": [], "mappings": [], "min": 0, "thresholds": { "mode": "absolute", "steps": [ { "color": "green" }, { "color": "red", "value": 80 } ] }, "unit": "short" }, "overrides": [] }, "gridPos": { "h": 8, "w": 8, "x": 8, "y": 88 }, "id": 81, "interval": "$minstep", "options": { "legend": { "calcs": [ "min", "max", "mean" ], "displayMode": "table", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi", "sort": "none" } }, "pluginVersion": "11.3.1", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "sum(${metric:value}(otelcol_processor_filter_datapoints_filtered${suffix_total}{job=\"$job\"}[$__rate_interval])) by (filter $grouping)", "format": "time_series", "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Filtered: {{filter}} {{transport}} {{service_instance_id}}", "range": true, "refId": "A" } ], "title": "Metric Points ${metric:text}", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "description": "", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "links": [], "mappings": [], "min": 0, "thresholds": { "mode": "absolute", "steps": [ { "color": "green" }, { "color": "red", "value": 80 } ] }, "unit": "short" }, "overrides": [] }, "gridPos": { "h": 8, "w": 8, "x": 16, "y": 88 }, "id": 82, "interval": "$minstep", "options": { "legend": { "calcs": [ "min", "max", "mean" ], "displayMode": "table", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi", "sort": "none" } }, "pluginVersion": "11.3.1", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "sum(${metric:value}(otelcol_processor_filter_log_records_filtered${suffix_total}{job=\"$job\"}[$__rate_interval])) by (filter $grouping)", "format": "time_series", "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Filtered: {{filter}} {{transport}} {{service_instance_id}}", "range": true, "refId": "A" } ], "title": "Log Records ${metric:text}", "type": "timeseries" } ], "title": "Filter processors", "type": "row" }, { "collapsed": true, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 90 }, "id": 68, "panels": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "description": "Measures the number of messages received per RPC. Should be 1 for all non-streaming RPCs. GRPC status codes: https://grpc.github.io/grpc/core/md_doc_statuscodes.html", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green" }, { "color": "red", "value": 80 } ] } }, "overrides": [ { "matcher": { "id": "byName", "options": "0" }, "properties": [ { "id": "custom.axisPlacement", "value": "right" }, { "id": "displayName", "value": "0 - OK" } ] }, { "matcher": { "id": "byName", "options": "1" }, "properties": [ { "id": "displayName", "value": "1 - CANCELLED" } ] }, { "matcher": { "id": "byName", "options": "2" }, "properties": [ { "id": "displayName", "value": "2 - UNKNOWN" } ] }, { "matcher": { "id": "byName", "options": "3" }, "properties": [ { "id": "displayName", "value": "3 - INVALID_ARGUMENT" } ] }, { "matcher": { "id": "byName", "options": "4" }, "properties": [ { "id": "displayName", "value": "4 - DEADLINE_EXCEEDED" } ] }, { "matcher": { "id": "byName", "options": "5" }, "properties": [ { "id": "displayName", "value": "5 - NOT_FOUND" } ] }, { "matcher": { "id": "byName", "options": "6" }, "properties": [ { "id": "displayName", "value": "6 - ALREADY_EXISTS" } ] }, { "matcher": { "id": "byName", "options": "7" }, "properties": [ { "id": "displayName", "value": "7 - PERMISSION_DENIED" } ] }, { "matcher": { "id": "byName", "options": "8" }, "properties": [ { "id": "displayName", "value": "8 - RESOURCE_EXHAUSTED" } ] }, { "matcher": { "id": "byName", "options": "9" }, "properties": [ { "id": "displayName", "value": "9 - FAILED_PRECONDITION" } ] }, { "matcher": { "id": "byName", "options": "10" }, "properties": [ { "id": "displayName", "value": "10 - ABORTED" } ] }, { "matcher": { "id": "byName", "options": "11" }, "properties": [ { "id": "displayName", "value": "11 - OUT_OF_RANGE" } ] }, { "matcher": { "id": "byName", "options": "12" }, "properties": [ { "id": "displayName", "value": "12 - UNIMPLEMENTED" } ] }, { "matcher": { "id": "byName", "options": "13" }, "properties": [ { "id": "displayName", "value": "13 - INTERNAL" } ] }, { "matcher": { "id": "byName", "options": "14" }, "properties": [ { "id": "displayName", "value": "14 - UNAVAILABLE" } ] }, { "matcher": { "id": "byName", "options": "15" }, "properties": [ { "id": "displayName", "value": "15 - DATA_LOSS" } ] }, { "matcher": { "id": "byName", "options": "16" }, "properties": [ { "id": "displayName", "value": "16 - UNAUTHENTICATED" } ] } ] }, "gridPos": { "h": 9, "w": 12, "x": 0, "y": 291 }, "id": 69, "interval": "$minstep", "options": { "legend": { "calcs": [ "min", "max", "mean" ], "displayMode": "table", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi", "sort": "none" } }, "pluginVersion": "11.3.1", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "expr": "sum by(rpc_grpc_status_code) (${metric:value}(${prefix:raw}rpc_server_responses_per_rpc_count{job=\"$job\"}[$__rate_interval]))", "instant": false, "legendFormat": "__auto", "range": true, "refId": "A" } ], "title": "RPC server responses by GRPC status code (receivers)", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "description": "Measures the number of messages received per RPC. Should be 1 for all non-streaming RPCs. GRPC status codes: https://grpc.github.io/grpc/core/md_doc_statuscodes.html", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green" }, { "color": "red", "value": 80 } ] } }, "overrides": [ { "matcher": { "id": "byName", "options": "0" }, "properties": [ { "id": "custom.axisPlacement", "value": "right" }, { "id": "displayName", "value": "0 - OK" } ] }, { "matcher": { "id": "byName", "options": "1" }, "properties": [ { "id": "displayName", "value": "1 - CANCELLED" } ] }, { "matcher": { "id": "byName", "options": "2" }, "properties": [ { "id": "displayName", "value": "2 - UNKNOWN" } ] }, { "matcher": { "id": "byName", "options": "3" }, "properties": [ { "id": "displayName", "value": "3 - INVALID_ARGUMENT" } ] }, { "matcher": { "id": "byName", "options": "4" }, "properties": [ { "id": "displayName", "value": "4 - DEADLINE_EXCEEDED" } ] }, { "matcher": { "id": "byName", "options": "5" }, "properties": [ { "id": "displayName", "value": "5 - NOT_FOUND" } ] }, { "matcher": { "id": "byName", "options": "6" }, "properties": [ { "id": "displayName", "value": "6 - ALREADY_EXISTS" } ] }, { "matcher": { "id": "byName", "options": "7" }, "properties": [ { "id": "displayName", "value": "7 - PERMISSION_DENIED" } ] }, { "matcher": { "id": "byName", "options": "8" }, "properties": [ { "id": "displayName", "value": "8 - RESOURCE_EXHAUSTED" } ] }, { "matcher": { "id": "byName", "options": "9" }, "properties": [ { "id": "displayName", "value": "9 - FAILED_PRECONDITION" } ] }, { "matcher": { "id": "byName", "options": "10" }, "properties": [ { "id": "displayName", "value": "10 - ABORTED" } ] }, { "matcher": { "id": "byName", "options": "11" }, "properties": [ { "id": "displayName", "value": "11 - OUT_OF_RANGE" } ] }, { "matcher": { "id": "byName", "options": "12" }, "properties": [ { "id": "displayName", "value": "12 - UNIMPLEMENTED" } ] }, { "matcher": { "id": "byName", "options": "13" }, "properties": [ { "id": "displayName", "value": "13 - INTERNAL" } ] }, { "matcher": { "id": "byName", "options": "14" }, "properties": [ { "id": "displayName", "value": "14 - UNAVAILABLE" } ] }, { "matcher": { "id": "byName", "options": "15" }, "properties": [ { "id": "displayName", "value": "15 - DATA_LOSS" } ] }, { "matcher": { "id": "byName", "options": "16" }, "properties": [ { "id": "displayName", "value": "16 - UNAUTHENTICATED" } ] } ] }, "gridPos": { "h": 9, "w": 12, "x": 12, "y": 291 }, "id": 70, "interval": "$minstep", "options": { "legend": { "calcs": [ "min", "max", "mean" ], "displayMode": "table", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi", "sort": "none" } }, "pluginVersion": "11.3.1", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "expr": "sum by(rpc_grpc_status_code) (${metric:value}(${prefix:raw}rpc_client_responses_per_rpc_count{job=\"$job\"}[$__rate_interval]))", "instant": false, "legendFormat": "__auto", "range": true, "refId": "A" } ], "title": "RPC client responses by GRPC status code (exporters)", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "description": "", "fieldConfig": { "defaults": { "custom": { "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "scaleDistribution": { "type": "linear" } }, "links": [] }, "overrides": [] }, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 300 }, "id": 72, "interval": "$minstep", "maxDataPoints": 50, "options": { "calculate": false, "cellGap": 1, "color": { "exponent": 0.5, "fill": "dark-orange", "mode": "scheme", "reverse": true, "scale": "exponential", "scheme": "Reds", "steps": 25 }, "exemplars": { "color": "rgba(255,0,255,0.7)" }, "filterValues": { "le": 1e-9 }, "legend": { "show": true }, "rowsFrame": { "layout": "auto" }, "tooltip": { "mode": "single", "showColorScale": false, "yHistogram": false }, "yAxis": { "axisPlacement": "left", "reverse": false, "unit": "ms" } }, "pluginVersion": "11.3.1", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "sum(increase(${prefix:raw}rpc_server_duration_bucket{job=\"$job\"}[$__rate_interval])) by (le)", "format": "heatmap", "hide": false, "instant": false, "interval": "$minstep", "intervalFactor": 1, "legendFormat": "{{le}}", "refId": "B" } ], "title": "RPC server duration (receivers)", "type": "heatmap" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "description": "", "fieldConfig": { "defaults": { "custom": { "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "scaleDistribution": { "type": "linear" } }, "links": [] }, "overrides": [] }, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 300 }, "id": 74, "interval": "$minstep", "maxDataPoints": 50, "options": { "calculate": false, "cellGap": 1, "color": { "exponent": 0.5, "fill": "dark-orange", "mode": "scheme", "reverse": true, "scale": "exponential", "scheme": "Reds", "steps": 25 }, "exemplars": { "color": "rgba(255,0,255,0.7)" }, "filterValues": { "le": 1e-9 }, "legend": { "show": true }, "rowsFrame": { "layout": "auto" }, "tooltip": { "mode": "single", "showColorScale": false, "yHistogram": false }, "yAxis": { "axisPlacement": "left", "reverse": false, "unit": "ms" } }, "pluginVersion": "11.3.1", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "sum(increase(${prefix:raw}rpc_client_duration_bucket{job=\"$job\"}[$__rate_interval])) by (le)", "format": "heatmap", "hide": false, "instant": false, "interval": "$minstep", "intervalFactor": 1, "legendFormat": "{{le}}", "refId": "B" } ], "title": "RPC client duration (exporters)", "type": "heatmap" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "description": "", "fieldConfig": { "defaults": { "custom": { "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "scaleDistribution": { "type": "linear" } }, "links": [] }, "overrides": [] }, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 308 }, "id": 73, "interval": "$minstep", "maxDataPoints": 50, "options": { "calculate": false, "cellGap": 1, "color": { "exponent": 0.5, "fill": "dark-orange", "mode": "scheme", "reverse": true, "scale": "exponential", "scheme": "Reds", "steps": 25 }, "exemplars": { "color": "rgba(255,0,255,0.7)" }, "filterValues": { "le": 0.1 }, "legend": { "show": true }, "rowsFrame": { "layout": "auto" }, "tooltip": { "mode": "single", "showColorScale": false, "yHistogram": false }, "yAxis": { "axisPlacement": "left", "reverse": false, "unit": "bytes" } }, "pluginVersion": "11.3.1", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "sum(increase(${prefix:raw}rpc_server_request_size_bucket{job=\"$job\"}[$__rate_interval])) by (le)", "format": "heatmap", "hide": false, "instant": false, "interval": "$minstep", "intervalFactor": 1, "legendFormat": "{{le}}", "refId": "B" } ], "title": "RPC server request size (receivers)", "type": "heatmap" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "description": "", "fieldConfig": { "defaults": { "custom": { "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "scaleDistribution": { "type": "linear" } }, "links": [] }, "overrides": [] }, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 308 }, "id": 75, "interval": "$minstep", "maxDataPoints": 50, "options": { "calculate": false, "cellGap": 1, "color": { "exponent": 0.5, "fill": "dark-orange", "mode": "scheme", "reverse": true, "scale": "exponential", "scheme": "Reds", "steps": 25 }, "exemplars": { "color": "rgba(255,0,255,0.7)" }, "filterValues": { "le": 0.1 }, "legend": { "show": true }, "rowsFrame": { "layout": "auto" }, "tooltip": { "mode": "single", "showColorScale": false, "yHistogram": false }, "yAxis": { "axisPlacement": "left", "reverse": false, "unit": "bytes" } }, "pluginVersion": "11.3.1", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "sum(increase(${prefix:raw}rpc_client_request_size_bucket{job=\"$job\"}[$__rate_interval])) by (le)", "format": "heatmap", "hide": false, "instant": false, "interval": "$minstep", "intervalFactor": 1, "legendFormat": "{{le}}", "refId": "B" } ], "title": "RPC client request size (exporters)", "type": "heatmap" } ], "title": "RPC server/client", "type": "row" }, { "collapsed": true, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 91 }, "id": 77, "panels": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "description": "", "fieldConfig": { "defaults": { "custom": { "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "scaleDistribution": { "type": "linear" } }, "links": [] }, "overrides": [] }, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 350 }, "id": 76, "interval": "$minstep", "maxDataPoints": 50, "options": { "calculate": false, "cellGap": 1, "color": { "exponent": 0.5, "fill": "dark-orange", "mode": "scheme", "reverse": true, "scale": "exponential", "scheme": "Reds", "steps": 25 }, "exemplars": { "color": "rgba(255,0,255,0.7)" }, "filterValues": { "le": 1e-9 }, "legend": { "show": true }, "rowsFrame": { "layout": "auto" }, "tooltip": { "mode": "single", "showColorScale": false, "yHistogram": false }, "yAxis": { "axisPlacement": "left", "reverse": false, "unit": "ms" } }, "pluginVersion": "11.3.1", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "sum(increase(${prefix:raw}http_server_duration_bucket{job=\"$job\"}[$__rate_interval])) by (le)", "format": "heatmap", "hide": false, "instant": false, "interval": "$minstep", "intervalFactor": 1, "legendFormat": "__auto", "refId": "B" } ], "title": "HTTP server duration (receivers)", "type": "heatmap" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "description": "", "fieldConfig": { "defaults": { "custom": { "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "scaleDistribution": { "type": "linear" } }, "links": [] }, "overrides": [] }, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 350 }, "id": 78, "interval": "$minstep", "maxDataPoints": 50, "options": { "calculate": false, "cellGap": 1, "color": { "exponent": 0.5, "fill": "dark-orange", "mode": "scheme", "reverse": true, "scale": "exponential", "scheme": "Reds", "steps": 25 }, "exemplars": { "color": "rgba(255,0,255,0.7)" }, "filterValues": { "le": 1e-9 }, "legend": { "show": true }, "rowsFrame": { "layout": "auto" }, "tooltip": { "mode": "single", "showColorScale": false, "yHistogram": false }, "yAxis": { "axisPlacement": "left", "reverse": false, "unit": "ms" } }, "pluginVersion": "11.3.1", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "sum(increase(${prefix:raw}http_client_duration_bucket{job=\"$job\"}[$__rate_interval])) by (le)", "format": "heatmap", "hide": false, "instant": false, "interval": "$minstep", "intervalFactor": 1, "legendFormat": "{{le}}", "refId": "B" } ], "title": "HTTP client duration (exporters)", "type": "heatmap" } ], "title": "HTTP server/client", "type": "row" }, { "collapsed": true, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 92 }, "id": 63, "panels": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "description": "Added: Number of namespace add events received.\nUpdated: Number of namespace update events received.", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "links": [], "mappings": [], "min": 0, "thresholds": { "mode": "absolute", "steps": [ { "color": "green" }, { "color": "red", "value": 80 } ] }, "unit": "none" }, "overrides": [ { "matcher": { "id": "byRegexp", "options": "/.*updated.*/" }, "properties": [ { "id": "color", "value": { "fixedColor": "blue", "mode": "fixed" } }, { "id": "custom.axisPlacement", "value": "right" } ] } ] }, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 212 }, "id": 64, "interval": "$minstep", "options": { "legend": { "calcs": [ "min", "max", "mean" ], "displayMode": "table", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi", "sort": "none" } }, "pluginVersion": "11.3.1", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "avg(otelcol_otelsvc_k8s_namespace_added${suffix_total}{job=\"$job\"}) by (job $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Added: {{transport}} {{service_instance_id}}", "range": true, "refId": "A" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "avg(otelcol_otelsvc_k8s_namespace_updated${suffix_total}{job=\"$job\"}) by (job $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Updated: {{transport}} {{service_instance_id}}", "range": true, "refId": "B" } ], "title": "Namespaces", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "description": "Added: Number of pod add events received.\nUpdated: Number of pod update events received.\nDeleted: Number of pod delete events received.", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "links": [], "mappings": [], "min": 0, "thresholds": { "mode": "absolute", "steps": [ { "color": "green" }, { "color": "red", "value": 80 } ] }, "unit": "none" }, "overrides": [] }, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 212 }, "id": 65, "interval": "$minstep", "options": { "legend": { "calcs": [ "min", "max", "mean" ], "displayMode": "table", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi", "sort": "none" } }, "pluginVersion": "11.3.1", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "sum(otelcol_otelsvc_k8s_pod_added${suffix_total}{job=\"$job\"}) by (job $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Added: {{transport}} {{service_instance_id}}", "range": true, "refId": "A" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "sum(otelcol_otelsvc_k8s_pod_updated${suffix_total}{job=\"$job\"}) by (job $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Updated: {{transport}} {{service_instance_id}}", "range": true, "refId": "B" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "editorMode": "code", "exemplar": false, "expr": "sum(otelcol_otelsvc_k8s_pod_deleted${suffix_total}{job=\"$job\"}) by (job $grouping)", "format": "time_series", "hide": false, "interval": "$minstep", "intervalFactor": 1, "legendFormat": "Deleted: {{transport}} {{service_instance_id}}", "range": true, "refId": "C" } ], "title": "Pods", "type": "timeseries" } ], "title": "Kubernetes", "type": "row" }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 93 }, "id": 66, "panels": [], "title": "Documentation", "type": "row" } ], "preload": false, "refresh": "", "schemaVersion": 40, "tags": [ "opentelemetry" ], "templating": { "list": [ { "current": {}, "includeAll": false, "label": "Datasource", "name": "datasource", "options": [], "query": "prometheus", "refresh": 1, "regex": "", "type": "datasource" }, { "current": {}, "datasource": { "type": "prometheus", "uid": "$datasource" }, "definition": "query_result({__name__=~\"otelcol_process_uptime.*\"})", "includeAll": false, "label": "Job", "name": "job", "options": [], "query": { "qryType": 3, "query": "query_result({__name__=~\"otelcol_process_uptime.*\"})", "refId": "PrometheusVariableQueryEditor-VariableQuery" }, "refresh": 1, "regex": "/.*{.*job=\"([a-zA-Z0-9_-]+)\".*}/", "sort": 1, "type": "query" }, { "auto": true, "auto_count": 300, "auto_min": "10s", "current": { "text": "$__auto", "value": "$__auto" }, "label": "Min step", "name": "minstep", "options": [ { "selected": false, "text": "10s", "value": "10s" }, { "selected": false, "text": "30s", "value": "30s" }, { "selected": false, "text": "1m", "value": "1m" }, { "selected": false, "text": "5m", "value": "5m" } ], "query": "10s,30s,1m,5m", "refresh": 2, "type": "interval" }, { "current": { "text": "rate", "value": "rate" }, "includeAll": false, "label": "Base metric", "name": "metric", "options": [ { "selected": true, "text": "Rate", "value": "rate" }, { "selected": false, "text": "Count", "value": "increase" } ], "query": "Rate : rate, Count : increase", "type": "custom" }, { "allValue": ".*", "current": {}, "datasource": { "type": "prometheus", "uid": "$datasource" }, "definition": "query_result(avg by (receiver) ({__name__=~\"otelcol_receiver_.+\",job=\"$job\"}))", "includeAll": true, "label": "Receiver", "name": "receiver", "options": [], "query": { "qryType": 3, "query": "query_result(avg by (receiver) ({__name__=~\"otelcol_receiver_.+\",job=\"$job\"}))", "refId": "PrometheusVariableQueryEditor-VariableQuery" }, "refresh": 2, "regex": "/.*receiver=\"(.*)\".*/", "sort": 1, "type": "query" }, { "allValue": ".*", "current": {}, "datasource": { "type": "prometheus", "uid": "$datasource" }, "definition": "query_result(avg by (processor) ({__name__=~\"otelcol_processor_.+\",job=\"$job\"}))", "includeAll": true, "label": "Processor", "name": "processor", "options": [], "query": { "qryType": 3, "query": "query_result(avg by (processor) ({__name__=~\"otelcol_processor_.+\",job=\"$job\"}))", "refId": "PrometheusVariableQueryEditor-VariableQuery" }, "refresh": 2, "regex": "/.*processor=\"(.*)\".*/", "sort": 1, "type": "query" }, { "allValue": ".*", "current": {}, "datasource": { "type": "prometheus", "uid": "$datasource" }, "definition": "query_result(avg by (exporter) ({__name__=~\"otelcol_exporter_.+\",job=\"$job\"}))", "includeAll": true, "label": "Exporter", "name": "exporter", "options": [], "query": { "qryType": 3, "query": "query_result(avg by (exporter) ({__name__=~\"otelcol_exporter_.+\",job=\"$job\"}))", "refId": "PrometheusVariableQueryEditor-VariableQuery" }, "refresh": 2, "regex": "/.*exporter=\"(.*)\".*/", "sort": 1, "type": "query" }, { "current": { "text": "", "value": "" }, "description": "Detailed metrics must be configured in the collector configuration. They add grouping by transport protocol (http/grpc) for receivers. ", "includeAll": false, "label": "Additional groupping", "name": "grouping", "options": [ { "selected": true, "text": "None (basic metrics)", "value": "" }, { "selected": false, "text": "By transport (detailed metrics)", "value": ",transport" }, { "selected": false, "text": "By service instance id", "value": ",service_instance_id" } ], "query": "None (basic metrics) : , By transport (detailed metrics) : \\,transport, By service instance id : \\,service_instance_id", "type": "custom" }, { "current": {}, "datasource": { "type": "prometheus", "uid": "$datasource" }, "definition": "query_result({__name__=~\"otelcol_process_uptime.+\",job=\"$job\"})", "description": "Some exporter(s) configuration(s) may add the metric suffix _total. This variable will detect this case.", "hide": 2, "includeAll": false, "label": "Suffix _total", "name": "suffix_total", "options": [], "query": { "qryType": 3, "query": "query_result({__name__=~\"otelcol_process_uptime.+\",job=\"$job\"})", "refId": "PrometheusVariableQueryEditor-VariableQuery" }, "refresh": 1, "regex": "/.*(_total)+{.*/", "type": "query" }, { "current": {}, "datasource": { "type": "prometheus", "uid": "$datasource" }, "definition": "query_result({__name__=~\"otelcol_process_uptime.+\",job=\"$job\"})", "description": "Some exporter(s) configuration(s) may add the metric suffix _seconds_total. This variable will detect this \"_seconds\" suffix part.", "hide": 2, "includeAll": false, "label": "Suffix _seconds", "name": "suffix_seconds", "options": [], "query": { "qryType": 3, "query": "query_result({__name__=~\"otelcol_process_uptime.+\",job=\"$job\"})", "refId": "PrometheusVariableQueryEditor-VariableQuery" }, "refresh": 1, "regex": "/otelcol_process_uptime(.*)_total{.*/", "type": "query" }, { "current": {}, "datasource": { "type": "prometheus", "uid": "$datasource" }, "definition": "query_result({__name__=~\"otelcol_process_memory_rss.+\",job=\"$job\"})", "description": "Some exporter(s) configuration(s) may add the metric suffix _bytes. This variable will detect this \"_bytes\" suffix part.", "hide": 2, "includeAll": false, "label": "Suffix _bytes", "name": "suffix_bytes", "options": [], "query": { "qryType": 3, "query": "query_result({__name__=~\"otelcol_process_memory_rss.+\",job=\"$job\"})", "refId": "PrometheusVariableQueryEditor-VariableQuery" }, "refresh": 1, "regex": "/otelcol_process_memory_rss(.*){.*/", "type": "query" }, { "current": {}, "datasource": { "type": "prometheus", "uid": "$datasource" }, "definition": "query_result({__name__=~\".*.*rpc_server_duration_bucket|.*rpc_client_duration_bucket|.*http_server_duration_bucket|.*http_client_duration_bucket.*\",job=\"$job\"})", "description": "Some metrics (e.g., RPC, HTTP) may no longer have the otelcol_ prefix. This will detect it. See https://github.com/open-telemetry/opentelemetry-collector/pull/9759", "hide": 2, "includeAll": false, "label": "Prefix", "name": "prefix", "options": [], "query": { "qryType": 3, "query": "query_result({__name__=~\".*.*rpc_server_duration_bucket|.*rpc_client_duration_bucket|.*http_server_duration_bucket|.*http_client_duration_bucket.*\",job=\"$job\"})", "refId": "PrometheusVariableQueryEditor-VariableQuery" }, "refresh": 1, "regex": "/(.*)(rpc|http)_(server|client)_duration_bucket.*{.*/", "type": "query" }, { "baseFilters": [], "datasource": { "type": "prometheus", "uid": "$datasource" }, "filters": [], "label": "Ad Hoc", "name": "adhoc", "type": "adhoc" } ] }, "time": { "from": "now-15m", "to": "now" }, "timepicker": {}, "timezone": "", "title": "OpenTelemetry Collector", "uid": "BKf2sowmj", "version": 1, "weekStart": "" } spanmetrics-dashboard.json: |- { "annotations": { "list": [ { "builtIn": 1, "datasource": { "type": "grafana", "uid": "-- Grafana --" }, "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", "name": "Annotations & Alerts", "target": { "limit": 100, "matchAny": false, "tags": [], "type": "dashboard" }, "type": "dashboard" } ] }, "description": "Spanmetrics way of demo application view.", "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 0, "id": 3, "links": [], "panels": [ { "fieldConfig": { "defaults": {}, "overrides": [] }, "gridPos": { "h": 2, "w": 24, "x": 0, "y": 0 }, "id": 26, "options": { "code": { "language": "plaintext", "showLineNumbers": false, "showMiniMap": false }, "content": "This dashboard uses RED metrics generated for all services by the spanmetrics connector configured in the OpenTelemetry Collector.\n
\nChart panels may require 5 minutes after the Demo is started before rendering data.", "mode": "html" }, "pluginVersion": "11.4.0", "title": "", "type": "text" }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 2 }, "id": 24, "panels": [], "title": "Service Level - Throughput and Latencies", "type": "row" }, { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "fieldConfig": { "defaults": { "color": { "mode": "continuous-BlYlRd" }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "blue", "value": null }, { "color": "green", "value": 2 }, { "color": "#EAB839", "value": 64 }, { "color": "orange", "value": 128 }, { "color": "red", "value": 256 } ] }, "unit": "ms" }, "overrides": [] }, "gridPos": { "h": 20, "w": 12, "x": 0, "y": 3 }, "id": 2, "interval": "5m", "options": { "minVizHeight": 75, "minVizWidth": 75, "orientation": "auto", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "showThresholdLabels": false, "showThresholdMarkers": true, "sizing": "auto" }, "pluginVersion": "11.4.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "editorMode": "code", "exemplar": false, "expr": "topk(7,histogram_quantile(0.50, sum(rate(traces_span_metrics_duration_milliseconds_bucket{service_name=~\"$service\", span_name=~\"$span_name\"}[$__rate_interval])) by (le,service_name)))", "format": "time_series", "hide": true, "instant": false, "interval": "", "legendFormat": "{{service_name}}-quantile_0.50", "range": true, "refId": "A" }, { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "editorMode": "code", "exemplar": false, "expr": "topk(7,histogram_quantile(0.95, sum(rate(traces_span_metrics_duration_milliseconds_bucket{service_name=~\"$service\", span_name=~\"$span_name\"}[$__range])) by (le,service_name)))", "hide": false, "instant": true, "interval": "", "legendFormat": "{{service_name}}", "range": false, "refId": "B" }, { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "editorMode": "code", "exemplar": false, "expr": "histogram_quantile(0.99, sum(rate(traces_span_metrics_duration_milliseconds_bucket{service_name=~\"$service\", span_name=~\"$span_name\"}[$__rate_interval])) by (le,service_name))", "hide": true, "interval": "", "legendFormat": "quantile99", "range": true, "refId": "C" }, { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "editorMode": "code", "exemplar": false, "expr": "histogram_quantile(0.999, sum(rate(traces_span_metrics_duration_milliseconds_bucket{service_name=~\"$service\", span_name=~\"$span_name\"}[$__rate_interval])) by (le,service_name))", "hide": true, "interval": "", "legendFormat": "quantile999", "range": true, "refId": "D" } ], "title": "Top 3x3 - Service Latency - quantile95", "type": "gauge" }, { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "fieldConfig": { "defaults": { "color": { "mode": "continuous-BlYlRd" }, "decimals": 2, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "super-light-blue", "value": 1 }, { "color": "#EAB839", "value": 2 }, { "color": "red", "value": 10 } ] }, "unit": "reqps" }, "overrides": [] }, "gridPos": { "h": 13, "w": 12, "x": 12, "y": 3 }, "id": 4, "interval": "5m", "options": { "displayMode": "lcd", "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": false }, "maxVizHeight": 300, "minVizHeight": 10, "minVizWidth": 0, "namePlacement": "auto", "orientation": "horizontal", "reduceOptions": { "calcs": [ "mean" ], "fields": "", "values": false }, "showUnfilled": true, "sizing": "auto", "text": {}, "valueMode": "color" }, "pluginVersion": "11.4.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "editorMode": "code", "exemplar": false, "expr": "topk(7,sum by (service_name) (rate(traces_span_metrics_calls_total{service_name=~\"$service\", span_name=~\"$span_name\"}[$__range])))", "format": "time_series", "instant": true, "interval": "", "legendFormat": "{{service_name}}", "range": false, "refId": "A" } ], "title": "Top 7 Services Mean Rate over Range", "type": "bargauge" }, { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "fieldConfig": { "defaults": { "color": { "mode": "continuous-reds" }, "decimals": 4, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "#EAB839", "value": 1 }, { "color": "red", "value": 15 } ] }, "unit": "reqps" }, "overrides": [] }, "gridPos": { "h": 7, "w": 12, "x": 12, "y": 16 }, "id": 15, "interval": "5m", "options": { "displayMode": "lcd", "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": false }, "maxVizHeight": 300, "minVizHeight": 10, "minVizWidth": 0, "namePlacement": "auto", "orientation": "vertical", "reduceOptions": { "calcs": [ "mean" ], "fields": "", "values": false }, "showUnfilled": true, "sizing": "auto", "text": {}, "valueMode": "color" }, "pluginVersion": "11.4.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "editorMode": "code", "exemplar": false, "expr": "topk(7,sum(rate(traces_span_metrics_calls_total{status_code=\"STATUS_CODE_ERROR\",service_name=~\"$service\", span_name=~\"$span_name\"}[$__range])) by (service_name))", "instant": true, "interval": "", "legendFormat": "{{service_name}}", "range": false, "refId": "A" } ], "title": "Top 7 Services Mean ERROR Rate over Range", "type": "bargauge" }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 23 }, "id": 14, "panels": [], "title": "span_names Level - Throughput", "type": "row" }, { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "description": "", "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "custom": { "align": "auto", "cellOptions": { "type": "auto" }, "inspect": false }, "decimals": 2, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "reqps" }, "overrides": [ { "matcher": { "id": "byName", "options": "bRate" }, "properties": [ { "id": "custom.cellOptions", "value": { "mode": "lcd", "type": "gauge" } }, { "id": "color", "value": { "mode": "continuous-BlYlRd" } } ] }, { "matcher": { "id": "byName", "options": "eRate" }, "properties": [ { "id": "custom.cellOptions", "value": { "mode": "lcd", "type": "gauge" } }, { "id": "color", "value": { "mode": "continuous-RdYlGr" } } ] }, { "matcher": { "id": "byName", "options": "Error Rate" }, "properties": [ { "id": "custom.width", "value": 663 } ] }, { "matcher": { "id": "byName", "options": "Rate" }, "properties": [ { "id": "custom.width", "value": 667 } ] }, { "matcher": { "id": "byName", "options": "Service" }, "properties": [ { "id": "custom.width" } ] } ] }, "gridPos": { "h": 11, "w": 24, "x": 0, "y": 24 }, "id": 22, "interval": "5m", "options": { "cellHeight": "sm", "footer": { "countRows": false, "fields": "", "reducer": [ "sum" ], "show": false }, "showHeader": true, "sortBy": [] }, "pluginVersion": "11.4.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "exemplar": false, "expr": "topk(7, sum(rate(traces_span_metrics_calls_total{service_name=~\"$service\", span_name=~\"$span_name\"}[$__range])) by (span_name,service_name)) ", "format": "table", "instant": true, "interval": "", "legendFormat": "", "refId": "Rate" }, { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "exemplar": false, "expr": "topk(7, sum(rate(traces_span_metrics_calls_total{status_code=\"STATUS_CODE_ERROR\",service_name=~\"$service\", span_name=~\"$span_name\"}[$__range])) by (span_name,service_name))", "format": "table", "hide": false, "instant": true, "interval": "", "legendFormat": "", "refId": "Error Rate" } ], "title": "Top 7 span_names and Errors (APM Table)", "transformations": [ { "id": "seriesToColumns", "options": { "byField": "span_name" } }, { "id": "organize", "options": { "excludeByName": { "Time 1": true, "Time 2": true }, "indexByName": {}, "renameByName": { "Value #Error Rate": "Error Rate", "Value #Rate": "Rate", "service_name 1": "Rate in Service", "service_name 2": "Error Rate in Service" } } }, { "id": "calculateField", "options": { "alias": "bRate", "mode": "reduceRow", "reduce": { "include": [ "Rate" ], "reducer": "sum" } } }, { "id": "calculateField", "options": { "alias": "eRate", "mode": "reduceRow", "reduce": { "include": [ "Error Rate" ], "reducer": "sum" } } }, { "id": "organize", "options": { "excludeByName": { "Error Rate": true, "Rate": true, "bRate": false }, "indexByName": { "Error Rate": 4, "Error Rate in Service": 6, "Rate": 1, "Rate in Service": 5, "bRate": 2, "eRate": 3, "span_name": 0 }, "renameByName": { "Rate in Service": "Service", "bRate": "Rate", "eRate": "Error Rate", "span_name": "span_name Name" } } }, { "id": "sortBy", "options": { "fields": {}, "sort": [ { "desc": true, "field": "Rate" } ] } } ], "type": "table" }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 35 }, "id": 20, "panels": [], "title": "span_name Level - Latencies", "type": "row" }, { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "fieldConfig": { "defaults": { "color": { "mode": "continuous-BlYlRd" }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "blue" }, { "color": "green", "value": 2 }, { "color": "#EAB839", "value": 64 }, { "color": "orange", "value": 128 }, { "color": "red", "value": 256 } ] }, "unit": "ms" }, "overrides": [] }, "gridPos": { "h": 13, "w": 12, "x": 0, "y": 36 }, "id": 25, "interval": "5m", "options": { "minVizHeight": 75, "minVizWidth": 75, "orientation": "auto", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "showThresholdLabels": false, "showThresholdMarkers": true, "sizing": "auto" }, "pluginVersion": "11.3.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "editorMode": "code", "exemplar": false, "expr": "topk(7,histogram_quantile(0.50, sum(rate(traces_span_metrics_duration_milliseconds_bucket{service_name=~\"$service\", span_name=~\"$span_name\"}[$__rate_interval])) by (le,service_name)))", "format": "time_series", "hide": true, "instant": false, "interval": "", "legendFormat": "{{service_name}}-quantile_0.50", "range": true, "refId": "A" }, { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "editorMode": "code", "exemplar": false, "expr": "topk(7,histogram_quantile(0.95, sum(rate(traces_span_metrics_duration_milliseconds_bucket{service_name=~\"$service\", span_name=~\"$span_name\"}[$__range])) by (le,span_name)))", "hide": false, "instant": true, "interval": "", "legendFormat": "{{span_name}}", "range": false, "refId": "B" }, { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "editorMode": "code", "exemplar": false, "expr": "histogram_quantile(0.99, sum(rate(traces_span_metrics_duration_milliseconds_bucket{service_name=~\"$service\", span_name=~\"$span_name\"}[$__rate_interval])) by (le,service_name))", "hide": true, "interval": "", "legendFormat": "quantile99", "range": true, "refId": "C" }, { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "editorMode": "code", "exemplar": false, "expr": "histogram_quantile(0.999, sum(rate(traces_span_metrics_duration_milliseconds_bucket{service_name=~\"$service\", span_name=~\"$span_name\"}[$__rate_interval])) by (le,service_name))", "hide": true, "interval": "", "legendFormat": "quantile999", "range": true, "refId": "D" } ], "title": "Top 3x3 - span_name Latency - quantile95", "type": "gauge" }, { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "fieldConfig": { "defaults": { "color": { "mode": "continuous-BlYlRd" }, "decimals": 2, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green" }, { "color": "red", "value": 80 } ] }, "unit": "ms" }, "overrides": [] }, "gridPos": { "h": 13, "w": 12, "x": 12, "y": 36 }, "id": 10, "interval": "5m", "options": { "displayMode": "lcd", "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": false }, "maxVizHeight": 300, "minVizHeight": 10, "minVizWidth": 0, "namePlacement": "auto", "orientation": "horizontal", "reduceOptions": { "calcs": [ "mean" ], "fields": "", "values": false }, "showUnfilled": true, "sizing": "auto", "valueMode": "color" }, "pluginVersion": "11.3.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "editorMode": "code", "exemplar": false, "expr": "topk(7, sum by (span_name,service_name)(increase(traces_span_metrics_duration_milliseconds_sum{service_name=~\"${service}\", span_name=~\"$span_name\"}[5m]) / increase(traces_span_metrics_duration_milliseconds_count{service_name=~\"${service}\",span_name=~\"$span_name\"}[5m\n])))", "instant": true, "interval": "", "legendFormat": "{{span_name}} [{{service_name}}]", "range": false, "refId": "A" } ], "title": "Top 7 Highest Endpoint Latencies Mean Over Range ", "type": "bargauge" }, { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 15, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "smooth", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "auto", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green" }, { "color": "red", "value": 80 } ] }, "unit": "ms" }, "overrides": [] }, "gridPos": { "h": 12, "w": 24, "x": 0, "y": 49 }, "id": 16, "interval": "5m", "options": { "legend": { "calcs": [ "mean", "logmin", "max", "delta" ], "displayMode": "table", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "single", "sort": "none" } }, "pluginVersion": "11.3.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "editorMode": "code", "exemplar": true, "expr": "topk(7,sum by (span_name,service_name)(increase(traces_span_metrics_duration_milliseconds_sum{service_name=~\"$service\", span_name=~\"$span_name\"}[$__rate_interval]) / increase(traces_span_metrics_duration_milliseconds_count{service_name=~\"$service\", span_name=~\"$span_name\"}[$__rate_interval])))", "instant": false, "interval": "", "legendFormat": "[{{service_name}}] {{span_name}}", "range": true, "refId": "A" } ], "title": "Top 7 Latencies Over Range ", "type": "timeseries" } ], "preload": false, "refresh": "5m", "schemaVersion": 40, "tags": [], "templating": { "list": [ { "allValue": ".*", "current": { "text": "All", "value": "$__all" }, "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "definition": "query_result(count by (service_name)(count_over_time(traces_span_metrics_calls_total[$__range])))", "includeAll": true, "multi": true, "name": "service", "options": [], "query": { "query": "query_result(count by (service_name)(count_over_time(traces_span_metrics_calls_total[$__range])))", "refId": "StandardVariableQuery" }, "refresh": 2, "regex": "/.*service_name=\"(.*)\".*/", "sort": 1, "type": "query" }, { "allValue": ".*", "current": { "text": "All", "value": "$__all" }, "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "definition": "query_result(sum ({__name__=~\".*traces_span_metrics_calls_total\",service_name=~\"$service\"}) by (span_name))", "includeAll": true, "multi": true, "name": "span_name", "options": [], "query": { "query": "query_result(sum ({__name__=~\".*traces_span_metrics_calls_total\",service_name=~\"$service\"}) by (span_name))", "refId": "StandardVariableQuery" }, "refresh": 2, "regex": "/.*span_name=\"(.*)\".*/", "type": "query" } ] }, "time": { "from": "now-15m", "to": "now" }, "timepicker": {}, "timezone": "", "title": "Spanmetrics Demo Dashboard", "uid": "W2gX2zHVk48", "version": 2, "weekStart": "" } --- # Source: opentelemetry-demo/templates/product-catalog-products.yaml apiVersion: v1 kind: ConfigMap metadata: name: product-catalog-products namespace: otel-demo labels: app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/version: "2.0.2" app.kubernetes.io/part-of: opentelemetry-demo data: products.json: | { "products": [ { "id": "OLJCESPC7Z", "name": "National Park Foundation Explorascope", "description": "The National Park Foundation’s (NPF) Explorascope 60AZ is a manual alt-azimuth, refractor telescope perfect for celestial viewing on the go. The NPF Explorascope 60 can view the planets, moon, star clusters and brighter deep sky objects like the Orion Nebula and Andromeda Galaxy.", "picture": "NationalParkFoundationExplorascope.jpg", "priceUsd": { "currencyCode": "USD", "units": 101, "nanos": 960000000 }, "categories": [ "telescopes" ] }, { "id": "66VCHSJNUP", "name": "Starsense Explorer Refractor Telescope", "description": "The first telescope that uses your smartphone to analyze the night sky and calculate its position in real time. StarSense Explorer is ideal for beginners thanks to the app’s user-friendly interface and detailed tutorials. It’s like having your own personal tour guide of the night sky", "picture": "StarsenseExplorer.jpg", "priceUsd": { "currencyCode": "USD", "units": 349, "nanos": 950000000 }, "categories": [ "telescopes" ] }, { "id": "1YMWWN1N4O", "name": "Eclipsmart Travel Refractor Telescope", "description": "Dedicated white-light solar scope for the observer on the go. The 50mm refracting solar scope uses Solar Safe, ISO compliant, full-aperture glass filter material to ensure the safest view of solar events. The kit comes complete with everything you need, including the dedicated travel solar scope, a Solar Safe finderscope, tripod, a high quality 20mm (18x) Kellner eyepiece and a nylon backpack to carry everything in. This Travel Solar Scope makes it easy to share the Sun as well as partial and total solar eclipses with the whole family and offers much higher magnifications than you would otherwise get using handheld solar viewers or binoculars.", "picture": "EclipsmartTravelRefractorTelescope.jpg", "priceUsd": { "currencyCode": "USD", "units": 129, "nanos": 950000000 }, "categories": [ "telescopes", "travel" ] }, { "id": "L9ECAV7KIM", "name": "Lens Cleaning Kit", "description": "Wipe away dust, dirt, fingerprints and other particles on your lenses to see clearly with the Lens Cleaning Kit. This cleaning kit works on all glass and optical surfaces, including telescopes, binoculars, spotting scopes, monoculars, microscopes, and even your camera lenses, computer screens, and mobile devices. The kit comes complete with a retractable lens brush to remove dust particles and dirt and two options to clean smudges and fingerprints off of your optics, pre-moistened lens wipes and a bottled lens cleaning fluid with soft cloth.", "picture": "LensCleaningKit.jpg", "priceUsd": { "currencyCode": "USD", "units": 21, "nanos": 950000000 }, "categories": [ "accessories" ] }, { "id": "2ZYFJ3GM2N", "name": "Roof Binoculars", "description": "This versatile, all-around binocular is a great choice for the trail, the stadium, the arena, or just about anywhere you want a close-up view of the action without sacrificing brightness or detail. It’s an especially great companion for nature observation and bird watching, with ED glass that helps you spot the subtlest field markings and a close focus of just 6.5 feet.", "picture": "RoofBinoculars.jpg", "priceUsd": { "currencyCode": "USD", "units": 209, "nanos": 950000000 }, "categories": [ "binoculars" ] }, { "id": "0PUK6V6EV0", "name": "Solar System Color Imager", "description": "You have your new telescope and have observed Saturn and Jupiter. Now you're ready to take the next step and start imaging them. But where do you begin? The NexImage 10 Solar System Imager is the perfect solution.", "picture": "SolarSystemColorImager.jpg", "priceUsd": { "currencyCode": "USD", "units": 175, "nanos": 0 }, "categories": [ "accessories", "telescopes" ] }, { "id": "LS4PSXUNUM", "name": "Red Flashlight", "description": "This 3-in-1 device features a 3-mode red flashlight, a hand warmer, and a portable power bank for recharging your personal electronics on the go. Whether you use it to light the way at an astronomy star party, a night walk, or wildlife research, ThermoTorch 3 Astro Red’s rugged, IPX4-rated design will withstand your everyday activities.", "picture": "RedFlashlight.jpg", "priceUsd": { "currencyCode": "USD", "units": 57, "nanos": 80000000 }, "categories": [ "accessories", "flashlights" ] }, { "id": "9SIQT8TOJO", "name": "Optical Tube Assembly", "description": "Capturing impressive deep-sky astroimages is easier than ever with Rowe-Ackermann Schmidt Astrograph (RASA) V2, the perfect companion to today’s top DSLR or astronomical CCD cameras. This fast, wide-field f/2.2 system allows for shorter exposure times compared to traditional f/10 astroimaging, without sacrificing resolution. Because shorter sub-exposure times are possible, your equatorial mount won’t need to accurately track over extended periods. The short focal length also lessens equatorial tracking demands. In many cases, autoguiding will not be required.", "picture": "OpticalTubeAssembly.jpg", "priceUsd": { "currencyCode": "USD", "units": 3599, "nanos": 0 }, "categories": [ "accessories", "telescopes", "assembly" ] }, { "id": "6E92ZMYYFZ", "name": "Solar Filter", "description": "Enhance your viewing experience with EclipSmart Solar Filter for 8” telescopes. With two Velcro straps and four self-adhesive Velcro pads for added safety, you can be assured that the solar filter cannot be accidentally knocked off and will provide Solar Safe, ISO compliant viewing.", "picture": "SolarFilter.jpg", "priceUsd": { "currencyCode": "USD", "units": 69, "nanos": 950000000 }, "categories": [ "accessories", "telescopes" ] }, { "id": "HQTGWGPNH4", "name": "The Comet Book", "description": "A 16th-century treatise on comets, created anonymously in Flanders (now northern France) and now held at the Universitätsbibliothek Kassel. Commonly known as The Comet Book (or Kometenbuch in German), its full title translates as “Comets and their General and Particular Meanings, According to Ptolomeé, Albumasar, Haly, Aliquind and other Astrologers”. The image is from https://publicdomainreview.org/collection/the-comet-book, made available by the Universitätsbibliothek Kassel under a CC-BY SA 4.0 license (https://creativecommons.org/licenses/by-sa/4.0/)", "picture": "TheCometBook.jpg", "priceUsd": { "currencyCode": "USD", "units": 0, "nanos": 990000000 }, "categories": [ "books" ] } ] } --- # Source: opentelemetry-demo/charts/grafana/templates/clusterrole.yaml kind: ClusterRole apiVersion: rbac.authorization.k8s.io/v1 metadata: labels: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/version: "11.5.2" name: grafana-clusterrole rules: [] --- # Source: opentelemetry-demo/charts/opentelemetry-collector/templates/clusterrole.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: otel-collector labels: app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/version: "0.120.0" app.kubernetes.io/component: standalone-collector rules: - apiGroups: [""] resources: ["pods", "namespaces"] verbs: ["get", "watch", "list"] - apiGroups: ["apps"] resources: ["replicasets"] verbs: ["get", "list", "watch"] - apiGroups: ["extensions"] resources: ["replicasets"] verbs: ["get", "list", "watch"] --- # Source: opentelemetry-demo/charts/prometheus/templates/clusterrole.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: labels: app.kubernetes.io/component: server app.kubernetes.io/name: prometheus app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/version: v3.1.0 app.kubernetes.io/part-of: prometheus name: prometheus rules: - apiGroups: - "" resources: - nodes - nodes/proxy - nodes/metrics - services - endpoints - pods - ingresses - configmaps verbs: - get - list - watch - apiGroups: - "extensions" - "networking.k8s.io" resources: - ingresses/status - ingresses verbs: - get - list - watch - apiGroups: - "discovery.k8s.io" resources: - endpointslices verbs: - get - list - watch - nonResourceURLs: - "/metrics" verbs: - get --- # Source: opentelemetry-demo/charts/grafana/templates/clusterrolebinding.yaml kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: grafana-clusterrolebinding labels: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/version: "11.5.2" subjects: - kind: ServiceAccount name: grafana namespace: otel-demo roleRef: kind: ClusterRole name: grafana-clusterrole apiGroup: rbac.authorization.k8s.io --- # Source: opentelemetry-demo/charts/opentelemetry-collector/templates/clusterrolebinding.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: otel-collector labels: app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/version: "0.120.0" app.kubernetes.io/component: standalone-collector roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: otel-collector subjects: - kind: ServiceAccount name: otel-collector namespace: otel-demo --- # Source: opentelemetry-demo/charts/prometheus/templates/clusterrolebinding.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: labels: app.kubernetes.io/component: server app.kubernetes.io/name: prometheus app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/version: v3.1.0 app.kubernetes.io/part-of: prometheus name: prometheus subjects: - kind: ServiceAccount name: prometheus namespace: otel-demo roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: prometheus --- # Source: opentelemetry-demo/charts/grafana/templates/role.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: grafana namespace: otel-demo labels: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/version: "11.5.2" rules: [] --- # Source: opentelemetry-demo/charts/grafana/templates/rolebinding.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: grafana namespace: otel-demo labels: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/version: "11.5.2" roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: grafana subjects: - kind: ServiceAccount name: grafana namespace: otel-demo --- # Source: opentelemetry-demo/charts/grafana/templates/service.yaml apiVersion: v1 kind: Service metadata: name: grafana namespace: otel-demo labels: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/version: "11.5.2" spec: type: ClusterIP ports: - name: service port: 80 protocol: TCP targetPort: 3000 selector: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo --- # Source: opentelemetry-demo/charts/jaeger/templates/allinone-agent-svc.yaml apiVersion: v1 kind: Service metadata: name: jaeger-agent labels: app.kubernetes.io/name: jaeger app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/version: "1.53.0" app.kubernetes.io/component: service-agent spec: clusterIP: None ports: - name: zk-compact-trft port: 5775 protocol: UDP targetPort: 0 - name: config-rest port: 5778 targetPort: 0 - name: jg-compact-trft port: 6831 protocol: UDP targetPort: 0 - name: jg-binary-trft port: 6832 protocol: UDP targetPort: 0 selector: app.kubernetes.io/name: jaeger app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: all-in-one --- # Source: opentelemetry-demo/charts/jaeger/templates/allinone-collector-svc.yaml apiVersion: v1 kind: Service metadata: name: jaeger-collector labels: app.kubernetes.io/name: jaeger app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/version: "1.53.0" app.kubernetes.io/component: service-collector spec: clusterIP: None ports: - name: http-zipkin port: 9411 targetPort: 0 appProtocol: http - name: grpc-http port: 14250 targetPort: 0 appProtocol: grpc - name: c-tchan-trft port: 14267 targetPort: 0 - name: http-c-binary-trft port: 14268 targetPort: 0 appProtocol: http - name: otlp-grpc port: 4317 targetPort: 0 appProtocol: grpc - name: otlp-http port: 4318 targetPort: 0 appProtocol: http selector: app.kubernetes.io/name: jaeger app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: all-in-one --- # Source: opentelemetry-demo/charts/jaeger/templates/allinone-query-svc.yaml apiVersion: v1 kind: Service metadata: name: jaeger-query labels: app.kubernetes.io/name: jaeger app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/version: "1.53.0" app.kubernetes.io/component: service-query spec: clusterIP: None ports: - name: http-query port: 16686 targetPort: 16686 - name: grpc-query port: 16685 targetPort: 16685 selector: app.kubernetes.io/name: jaeger app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: all-in-one --- # Source: opentelemetry-demo/charts/opensearch/templates/service.yaml kind: Service apiVersion: v1 metadata: name: opensearch labels: app.kubernetes.io/name: opensearch app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/version: "2.19.0" app.kubernetes.io/component: opensearch annotations: {} spec: type: ClusterIP selector: app.kubernetes.io/name: opensearch app.kubernetes.io/instance: opentelemetry-demo ports: - name: http protocol: TCP port: 9200 - name: transport protocol: TCP port: 9300 - name: metrics protocol: TCP port: 9600 --- # Source: opentelemetry-demo/charts/opensearch/templates/service.yaml kind: Service apiVersion: v1 metadata: name: opensearch-headless labels: app.kubernetes.io/name: opensearch app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/version: "2.19.0" app.kubernetes.io/component: opensearch annotations: service.alpha.kubernetes.io/tolerate-unready-endpoints: "true" spec: clusterIP: None # This is needed for statefulset hostnames like opensearch-0 to resolve # Create endpoints also if the related pod isn't ready publishNotReadyAddresses: true selector: app.kubernetes.io/name: opensearch app.kubernetes.io/instance: opentelemetry-demo ports: - name: http port: 9200 - name: transport port: 9300 - name: metrics port: 9600 --- # Source: opentelemetry-demo/charts/opentelemetry-collector/templates/service.yaml apiVersion: v1 kind: Service metadata: name: otel-collector namespace: otel-demo labels: app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/version: "0.120.0" app.kubernetes.io/component: standalone-collector component: standalone-collector spec: type: ClusterIP ports: - name: jaeger-compact port: 6831 targetPort: 6831 protocol: UDP - name: jaeger-grpc port: 14250 targetPort: 14250 protocol: TCP - name: jaeger-thrift port: 14268 targetPort: 14268 protocol: TCP - name: metrics port: 8888 targetPort: 8888 protocol: TCP - name: otlp port: 4317 targetPort: 4317 protocol: TCP appProtocol: grpc - name: otlp-http port: 4318 targetPort: 4318 protocol: TCP - name: zipkin port: 9411 targetPort: 9411 protocol: TCP selector: app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: opentelemetry-demo component: standalone-collector internalTrafficPolicy: Cluster --- # Source: opentelemetry-demo/charts/prometheus/templates/service.yaml apiVersion: v1 kind: Service metadata: labels: app.kubernetes.io/component: server app.kubernetes.io/name: prometheus app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/version: v3.1.0 app.kubernetes.io/part-of: prometheus name: prometheus namespace: otel-demo spec: ports: - name: http port: 9090 protocol: TCP targetPort: 9090 selector: app.kubernetes.io/component: server app.kubernetes.io/name: prometheus app.kubernetes.io/instance: opentelemetry-demo sessionAffinity: None type: "ClusterIP" --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: v1 kind: Service metadata: name: ad labels: opentelemetry.io/name: ad app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: ad app.kubernetes.io/name: ad app.kubernetes.io/version: "2.0.2" app.kubernetes.io/part-of: opentelemetry-demo spec: type: ClusterIP ports: - port: 8080 name: tcp-service targetPort: 8080 selector: opentelemetry.io/name: ad --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: v1 kind: Service metadata: name: cart labels: opentelemetry.io/name: cart app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: cart app.kubernetes.io/name: cart app.kubernetes.io/version: "2.0.2" app.kubernetes.io/part-of: opentelemetry-demo spec: type: ClusterIP ports: - port: 8080 name: tcp-service targetPort: 8080 selector: opentelemetry.io/name: cart --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: v1 kind: Service metadata: name: checkout labels: opentelemetry.io/name: checkout app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: checkout app.kubernetes.io/name: checkout app.kubernetes.io/version: "2.0.2" app.kubernetes.io/part-of: opentelemetry-demo spec: type: ClusterIP ports: - port: 8080 name: tcp-service targetPort: 8080 selector: opentelemetry.io/name: checkout --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: v1 kind: Service metadata: name: currency labels: opentelemetry.io/name: currency app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: currency app.kubernetes.io/name: currency app.kubernetes.io/version: "2.0.2" app.kubernetes.io/part-of: opentelemetry-demo spec: type: ClusterIP ports: - port: 8080 name: tcp-service targetPort: 8080 selector: opentelemetry.io/name: currency --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: v1 kind: Service metadata: name: email labels: opentelemetry.io/name: email app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: email app.kubernetes.io/name: email app.kubernetes.io/version: "2.0.2" app.kubernetes.io/part-of: opentelemetry-demo spec: type: ClusterIP ports: - port: 8080 name: tcp-service targetPort: 8080 selector: opentelemetry.io/name: email --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: v1 kind: Service metadata: name: flagd labels: opentelemetry.io/name: flagd app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: flagd app.kubernetes.io/name: flagd app.kubernetes.io/version: "2.0.2" app.kubernetes.io/part-of: opentelemetry-demo spec: type: ClusterIP ports: - port: 8013 name: rpc targetPort: 8013 - port: 8016 name: ofrep targetPort: 8016 - port: 4000 name: tcp-service-0 targetPort: 4000 selector: opentelemetry.io/name: flagd --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: v1 kind: Service metadata: name: frontend labels: opentelemetry.io/name: frontend app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: frontend app.kubernetes.io/name: frontend app.kubernetes.io/version: "2.0.2" app.kubernetes.io/part-of: opentelemetry-demo spec: type: ClusterIP ports: - port: 8080 name: tcp-service targetPort: 8080 selector: opentelemetry.io/name: frontend --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: v1 kind: Service metadata: name: frontend-proxy labels: opentelemetry.io/name: frontend-proxy app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: frontend-proxy app.kubernetes.io/name: frontend-proxy app.kubernetes.io/version: "2.0.2" app.kubernetes.io/part-of: opentelemetry-demo spec: type: ClusterIP ports: - port: 8080 name: tcp-service targetPort: 8080 selector: opentelemetry.io/name: frontend-proxy --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: v1 kind: Service metadata: name: image-provider labels: opentelemetry.io/name: image-provider app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: image-provider app.kubernetes.io/name: image-provider app.kubernetes.io/version: "2.0.2" app.kubernetes.io/part-of: opentelemetry-demo spec: type: ClusterIP ports: - port: 8081 name: tcp-service targetPort: 8081 selector: opentelemetry.io/name: image-provider --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: v1 kind: Service metadata: name: kafka labels: opentelemetry.io/name: kafka app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: kafka app.kubernetes.io/name: kafka app.kubernetes.io/version: "2.0.2" app.kubernetes.io/part-of: opentelemetry-demo spec: type: ClusterIP ports: - port: 9092 name: plaintext targetPort: 9092 - port: 9093 name: controller targetPort: 9093 selector: opentelemetry.io/name: kafka --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: v1 kind: Service metadata: name: load-generator labels: opentelemetry.io/name: load-generator app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: load-generator app.kubernetes.io/name: load-generator app.kubernetes.io/version: "2.0.2" app.kubernetes.io/part-of: opentelemetry-demo spec: type: ClusterIP ports: - port: 8089 name: tcp-service targetPort: 8089 selector: opentelemetry.io/name: load-generator --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: v1 kind: Service metadata: name: payment labels: opentelemetry.io/name: payment app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: payment app.kubernetes.io/name: payment app.kubernetes.io/version: "2.0.2" app.kubernetes.io/part-of: opentelemetry-demo spec: type: ClusterIP ports: - port: 8080 name: tcp-service targetPort: 8080 selector: opentelemetry.io/name: payment --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: v1 kind: Service metadata: name: product-catalog labels: opentelemetry.io/name: product-catalog app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: product-catalog app.kubernetes.io/name: product-catalog app.kubernetes.io/version: "2.0.2" app.kubernetes.io/part-of: opentelemetry-demo spec: type: ClusterIP ports: - port: 8080 name: tcp-service targetPort: 8080 selector: opentelemetry.io/name: product-catalog --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: v1 kind: Service metadata: name: quote labels: opentelemetry.io/name: quote app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: quote app.kubernetes.io/name: quote app.kubernetes.io/version: "2.0.2" app.kubernetes.io/part-of: opentelemetry-demo spec: type: ClusterIP ports: - port: 8080 name: tcp-service targetPort: 8080 selector: opentelemetry.io/name: quote --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: v1 kind: Service metadata: name: recommendation labels: opentelemetry.io/name: recommendation app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: recommendation app.kubernetes.io/name: recommendation app.kubernetes.io/version: "2.0.2" app.kubernetes.io/part-of: opentelemetry-demo spec: type: ClusterIP ports: - port: 8080 name: tcp-service targetPort: 8080 selector: opentelemetry.io/name: recommendation --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: v1 kind: Service metadata: name: shipping labels: opentelemetry.io/name: shipping app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: shipping app.kubernetes.io/name: shipping app.kubernetes.io/version: "2.0.2" app.kubernetes.io/part-of: opentelemetry-demo spec: type: ClusterIP ports: - port: 8080 name: tcp-service targetPort: 8080 selector: opentelemetry.io/name: shipping --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: v1 kind: Service metadata: name: valkey-cart labels: opentelemetry.io/name: valkey-cart app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: valkey-cart app.kubernetes.io/name: valkey-cart app.kubernetes.io/version: "2.0.2" app.kubernetes.io/part-of: opentelemetry-demo spec: type: ClusterIP ports: - port: 6379 name: valkey-cart targetPort: 6379 selector: opentelemetry.io/name: valkey-cart --- # Source: opentelemetry-demo/charts/grafana/templates/deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: grafana namespace: otel-demo labels: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/version: "11.5.2" spec: replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo strategy: type: RollingUpdate template: metadata: labels: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/version: "11.5.2" annotations: checksum/config: 99cca986c6d5f6511900d815ee5a70d0c284aeb70af56fb96108c7bf456eff87 checksum/sc-dashboard-provider-config: e70bf6a851099d385178a76de9757bb0bef8299da6d8443602590e44f05fdf24 checksum/secret: bed677784356b2af7fb0d87455db21f077853059b594101a4f6532bfbd962a7f kubectl.kubernetes.io/default-container: grafana spec: serviceAccountName: grafana automountServiceAccountToken: true shareProcessNamespace: false securityContext: fsGroup: 472 runAsGroup: 472 runAsNonRoot: true runAsUser: 472 enableServiceLinks: true containers: - name: grafana image: "docker.io/grafana/grafana:11.5.2" imagePullPolicy: IfNotPresent securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL seccompProfile: type: RuntimeDefault volumeMounts: - name: config mountPath: "/etc/grafana/grafana.ini" subPath: grafana.ini - name: storage mountPath: "/var/lib/grafana" - name: dashboards-default mountPath: "/var/lib/grafana/dashboards/default" - name: config mountPath: "/etc/grafana/provisioning/datasources/datasources.yaml" subPath: "datasources.yaml" - name: config mountPath: "/etc/grafana/provisioning/dashboards/dashboardproviders.yaml" subPath: "dashboardproviders.yaml" ports: - name: grafana containerPort: 3000 protocol: TCP - name: gossip-tcp containerPort: 9094 protocol: TCP - name: gossip-udp containerPort: 9094 protocol: UDP - name: profiling containerPort: 6060 protocol: TCP env: - name: POD_IP valueFrom: fieldRef: fieldPath: status.podIP - name: GF_SECURITY_ADMIN_USER valueFrom: secretKeyRef: name: grafana key: admin-user - name: GF_SECURITY_ADMIN_PASSWORD valueFrom: secretKeyRef: name: grafana key: admin-password - name: GF_INSTALL_PLUGINS valueFrom: configMapKeyRef: name: grafana key: plugins - name: GF_PATHS_DATA value: /var/lib/grafana/ - name: GF_PATHS_LOGS value: /var/log/grafana - name: GF_PATHS_PLUGINS value: /var/lib/grafana/plugins - name: GF_PATHS_PROVISIONING value: /etc/grafana/provisioning livenessProbe: failureThreshold: 10 httpGet: path: /api/health port: 3000 initialDelaySeconds: 60 timeoutSeconds: 30 readinessProbe: httpGet: path: /api/health port: 3000 resources: limits: memory: 150Mi volumes: - name: config configMap: name: grafana - name: dashboards-default configMap: name: grafana-dashboards - name: storage emptyDir: {} --- # Source: opentelemetry-demo/charts/jaeger/templates/allinone-deploy.yaml apiVersion: apps/v1 kind: Deployment metadata: name: jaeger labels: app.kubernetes.io/name: jaeger app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/version: "1.53.0" app.kubernetes.io/component: all-in-one prometheus.io/port: "14269" prometheus.io/scrape: "true" spec: replicas: 1 strategy: type: Recreate selector: matchLabels: app.kubernetes.io/name: jaeger app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: all-in-one template: metadata: labels: app.kubernetes.io/name: jaeger app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: all-in-one annotations: prometheus.io/port: "14269" prometheus.io/scrape: "true" spec: containers: - env: - name: METRICS_STORAGE_TYPE value: prometheus - name: COLLECTOR_OTLP_GRPC_HOST_PORT value: 0.0.0.0:4317 - name: COLLECTOR_OTLP_HTTP_HOST_PORT value: 0.0.0.0:4318 - name: SPAN_STORAGE_TYPE value: memory - name: COLLECTOR_ZIPKIN_HOST_PORT value: :9411 - name: JAEGER_DISABLED value: "false" - name: COLLECTOR_OTLP_ENABLED value: "true" securityContext: {} image: jaegertracing/all-in-one:1.53.0 imagePullPolicy: IfNotPresent name: jaeger args: - "--memory.max-traces=5000" - "--query.base-path=/jaeger/ui" - "--prometheus.server-url=http://prometheus:9090" - "--prometheus.query.normalize-calls=true" - "--prometheus.query.normalize-duration=true" ports: - containerPort: 5775 protocol: UDP - containerPort: 6831 protocol: UDP - containerPort: 6832 protocol: UDP - containerPort: 5778 protocol: TCP - containerPort: 16686 protocol: TCP - containerPort: 16685 protocol: TCP - containerPort: 9411 protocol: TCP - containerPort: 4317 protocol: TCP - containerPort: 4318 protocol: TCP livenessProbe: failureThreshold: 5 httpGet: path: / port: 14269 scheme: HTTP initialDelaySeconds: 5 periodSeconds: 15 successThreshold: 1 timeoutSeconds: 1 readinessProbe: failureThreshold: 3 httpGet: path: / port: 14269 scheme: HTTP initialDelaySeconds: 1 periodSeconds: 10 successThreshold: 1 timeoutSeconds: 1 resources: limits: memory: 400Mi volumeMounts: securityContext: fsGroup: 10001 runAsGroup: 10001 runAsUser: 10001 serviceAccountName: jaeger volumes: --- # Source: opentelemetry-demo/charts/opentelemetry-collector/templates/deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: otel-collector namespace: otel-demo labels: app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/version: "0.120.0" app.kubernetes.io/component: standalone-collector spec: replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: opentelemetry-demo component: standalone-collector strategy: type: RollingUpdate template: metadata: annotations: checksum/config: a89266db0e62ae4711e3cef2ea43e19dac4d19232eb4bb06b05882a36f128110 opentelemetry_community_demo: "true" prometheus.io/scrape: "true" labels: app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: opentelemetry-demo component: standalone-collector spec: serviceAccountName: otel-collector securityContext: {} containers: - name: opentelemetry-collector args: - --config=/conf/relay.yaml securityContext: {} image: "otel/opentelemetry-collector-contrib:0.120.0" imagePullPolicy: IfNotPresent ports: - name: jaeger-compact containerPort: 6831 protocol: UDP - name: jaeger-grpc containerPort: 14250 protocol: TCP - name: jaeger-thrift containerPort: 14268 protocol: TCP - name: metrics containerPort: 8888 protocol: TCP - name: otlp containerPort: 4317 protocol: TCP - name: otlp-http containerPort: 4318 protocol: TCP - name: zipkin containerPort: 9411 protocol: TCP env: - name: MY_POD_IP valueFrom: fieldRef: apiVersion: v1 fieldPath: status.podIP - name: GOMEMLIMIT value: "160MiB" livenessProbe: httpGet: path: / port: 13133 readinessProbe: httpGet: path: / port: 13133 resources: limits: memory: 200Mi volumeMounts: - mountPath: /conf name: opentelemetry-collector-configmap volumes: - name: opentelemetry-collector-configmap configMap: name: otel-collector items: - key: relay path: relay.yaml hostNetwork: false --- # Source: opentelemetry-demo/charts/prometheus/templates/deploy.yaml apiVersion: apps/v1 kind: Deployment metadata: labels: app.kubernetes.io/component: server app.kubernetes.io/name: prometheus app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/version: v3.1.0 app.kubernetes.io/part-of: prometheus name: prometheus namespace: otel-demo spec: selector: matchLabels: app.kubernetes.io/component: server app.kubernetes.io/name: prometheus app.kubernetes.io/instance: opentelemetry-demo replicas: 1 revisionHistoryLimit: 10 strategy: type: Recreate rollingUpdate: null template: metadata: labels: app.kubernetes.io/component: server app.kubernetes.io/name: prometheus app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/version: v3.1.0 app.kubernetes.io/part-of: prometheus spec: enableServiceLinks: true serviceAccountName: prometheus containers: - name: prometheus-server image: "quay.io/prometheus/prometheus:v3.1.0" imagePullPolicy: "IfNotPresent" args: - --storage.tsdb.retention.time=15d - --config.file=/etc/config/prometheus.yml - --storage.tsdb.path=/data - --web.console.libraries=/etc/prometheus/console_libraries - --web.console.templates=/etc/prometheus/consoles - --enable-feature=exemplar-storage - --web.enable-otlp-receiver ports: - containerPort: 9090 readinessProbe: httpGet: path: /-/ready port: 9090 scheme: HTTP initialDelaySeconds: 30 periodSeconds: 5 timeoutSeconds: 4 failureThreshold: 3 successThreshold: 1 livenessProbe: httpGet: path: /-/healthy port: 9090 scheme: HTTP initialDelaySeconds: 30 periodSeconds: 15 timeoutSeconds: 10 failureThreshold: 3 successThreshold: 1 resources: limits: memory: 300Mi volumeMounts: - name: config-volume mountPath: /etc/config - name: storage-volume mountPath: /data subPath: "" dnsPolicy: ClusterFirst securityContext: fsGroup: 65534 runAsGroup: 65534 runAsNonRoot: true runAsUser: 65534 terminationGracePeriodSeconds: 300 volumes: - name: config-volume configMap: name: prometheus - name: storage-volume emptyDir: {} --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: apps/v1 kind: Deployment metadata: name: accounting labels: opentelemetry.io/name: accounting app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: accounting app.kubernetes.io/name: accounting app.kubernetes.io/version: "2.0.2" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: opentelemetry.io/name: accounting template: metadata: labels: opentelemetry.io/name: accounting app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: accounting app.kubernetes.io/name: accounting spec: serviceAccountName: opentelemetry-demo containers: - name: accounting image: 'ghcr.io/open-telemetry/demo:2.0.2-accounting' imagePullPolicy: IfNotPresent env: - name: OTEL_SERVICE_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.labels['app.kubernetes.io/component'] - name: OTEL_COLLECTOR_NAME value: otel-collector - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative - name: KAFKA_ADDR value: kafka:9092 - name: OTEL_EXPORTER_OTLP_ENDPOINT value: http://$(OTEL_COLLECTOR_NAME):4318 - name: OTEL_RESOURCE_ATTRIBUTES value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.2 resources: limits: memory: 120Mi volumeMounts: initContainers: - command: - sh - -c - until nc -z -v -w30 kafka 9092; do echo waiting for kafka; sleep 2; done; image: busybox:latest name: wait-for-kafka volumes: --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: apps/v1 kind: Deployment metadata: name: ad labels: opentelemetry.io/name: ad app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: ad app.kubernetes.io/name: ad app.kubernetes.io/version: "2.0.2" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: opentelemetry.io/name: ad template: metadata: labels: opentelemetry.io/name: ad app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: ad app.kubernetes.io/name: ad spec: serviceAccountName: opentelemetry-demo containers: - name: ad image: 'ghcr.io/open-telemetry/demo:2.0.2-ad' imagePullPolicy: IfNotPresent ports: - containerPort: 8080 name: service env: - name: OTEL_SERVICE_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.labels['app.kubernetes.io/component'] - name: OTEL_COLLECTOR_NAME value: otel-collector - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative - name: AD_PORT value: "8080" - name: FLAGD_HOST value: flagd - name: FLAGD_PORT value: "8013" - name: OTEL_EXPORTER_OTLP_ENDPOINT value: http://$(OTEL_COLLECTOR_NAME):4318 - name: OTEL_LOGS_EXPORTER value: otlp - name: OTEL_RESOURCE_ATTRIBUTES value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.2 resources: limits: memory: 300Mi volumeMounts: volumes: --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: apps/v1 kind: Deployment metadata: name: cart labels: opentelemetry.io/name: cart app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: cart app.kubernetes.io/name: cart app.kubernetes.io/version: "2.0.2" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: opentelemetry.io/name: cart template: metadata: labels: opentelemetry.io/name: cart app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: cart app.kubernetes.io/name: cart spec: serviceAccountName: opentelemetry-demo containers: - name: cart image: 'ghcr.io/open-telemetry/demo:2.0.2-cart' imagePullPolicy: IfNotPresent ports: - containerPort: 8080 name: service env: - name: OTEL_SERVICE_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.labels['app.kubernetes.io/component'] - name: OTEL_COLLECTOR_NAME value: otel-collector - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative - name: CART_PORT value: "8080" - name: ASPNETCORE_URLS value: http://*:$(CART_PORT) - name: VALKEY_ADDR value: valkey-cart:6379 - name: FLAGD_HOST value: flagd - name: FLAGD_PORT value: "8013" - name: OTEL_EXPORTER_OTLP_ENDPOINT value: http://$(OTEL_COLLECTOR_NAME):4317 - name: OTEL_RESOURCE_ATTRIBUTES value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.2 resources: limits: memory: 160Mi volumeMounts: initContainers: - command: - sh - -c - until nc -z -v -w30 valkey-cart 6379; do echo waiting for valkey-cart; sleep 2; done; image: busybox:latest name: wait-for-valkey-cart volumes: --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: apps/v1 kind: Deployment metadata: name: checkout labels: opentelemetry.io/name: checkout app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: checkout app.kubernetes.io/name: checkout app.kubernetes.io/version: "2.0.2" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: opentelemetry.io/name: checkout template: metadata: labels: opentelemetry.io/name: checkout app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: checkout app.kubernetes.io/name: checkout spec: serviceAccountName: opentelemetry-demo containers: - name: checkout image: 'ghcr.io/open-telemetry/demo:2.0.2-checkout' imagePullPolicy: IfNotPresent ports: - containerPort: 8080 name: service env: - name: OTEL_SERVICE_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.labels['app.kubernetes.io/component'] - name: OTEL_COLLECTOR_NAME value: otel-collector - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative - name: CHECKOUT_PORT value: "8080" - name: CART_ADDR value: cart:8080 - name: CURRENCY_ADDR value: currency:8080 - name: EMAIL_ADDR value: http://email:8080 - name: PAYMENT_ADDR value: payment:8080 - name: PRODUCT_CATALOG_ADDR value: product-catalog:8080 - name: SHIPPING_ADDR value: shipping:8080 - name: KAFKA_ADDR value: kafka:9092 - name: FLAGD_HOST value: flagd - name: FLAGD_PORT value: "8013" - name: OTEL_EXPORTER_OTLP_ENDPOINT value: http://$(OTEL_COLLECTOR_NAME):4317 - name: OTEL_RESOURCE_ATTRIBUTES value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.2 resources: limits: memory: 20Mi volumeMounts: initContainers: - command: - sh - -c - until nc -z -v -w30 kafka 9092; do echo waiting for kafka; sleep 2; done; image: busybox:latest name: wait-for-kafka volumes: --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: apps/v1 kind: Deployment metadata: name: currency labels: opentelemetry.io/name: currency app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: currency app.kubernetes.io/name: currency app.kubernetes.io/version: "2.0.2" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: opentelemetry.io/name: currency template: metadata: labels: opentelemetry.io/name: currency app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: currency app.kubernetes.io/name: currency spec: serviceAccountName: opentelemetry-demo containers: - name: currency image: 'ghcr.io/open-telemetry/demo:2.0.2-currency' imagePullPolicy: IfNotPresent ports: - containerPort: 8080 name: service env: - name: OTEL_SERVICE_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.labels['app.kubernetes.io/component'] - name: OTEL_COLLECTOR_NAME value: otel-collector - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative - name: CURRENCY_PORT value: "8080" - name: OTEL_EXPORTER_OTLP_ENDPOINT value: http://$(OTEL_COLLECTOR_NAME):4317 - name: VERSION value: '2.0.2' - name: OTEL_RESOURCE_ATTRIBUTES value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.2 resources: limits: memory: 20Mi volumeMounts: volumes: --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: apps/v1 kind: Deployment metadata: name: email labels: opentelemetry.io/name: email app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: email app.kubernetes.io/name: email app.kubernetes.io/version: "2.0.2" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: opentelemetry.io/name: email template: metadata: labels: opentelemetry.io/name: email app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: email app.kubernetes.io/name: email spec: serviceAccountName: opentelemetry-demo containers: - name: email image: 'ghcr.io/open-telemetry/demo:2.0.2-email' imagePullPolicy: IfNotPresent ports: - containerPort: 8080 name: service env: - name: OTEL_SERVICE_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.labels['app.kubernetes.io/component'] - name: OTEL_COLLECTOR_NAME value: otel-collector - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative - name: EMAIL_PORT value: "8080" - name: APP_ENV value: production - name: OTEL_EXPORTER_OTLP_TRACES_ENDPOINT value: http://$(OTEL_COLLECTOR_NAME):4318/v1/traces - name: OTEL_RESOURCE_ATTRIBUTES value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.2 resources: limits: memory: 100Mi volumeMounts: volumes: --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: apps/v1 kind: Deployment metadata: name: flagd labels: opentelemetry.io/name: flagd app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: flagd app.kubernetes.io/name: flagd app.kubernetes.io/version: "2.0.2" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: opentelemetry.io/name: flagd template: metadata: labels: opentelemetry.io/name: flagd app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: flagd app.kubernetes.io/name: flagd spec: serviceAccountName: opentelemetry-demo containers: - name: flagd image: 'ghcr.io/open-feature/flagd:v0.11.1' imagePullPolicy: IfNotPresent command: - /flagd-build - start - --port - "8013" - --ofrep-port - "8016" - --uri - file:./etc/flagd/demo.flagd.json ports: - containerPort: 8013 name: rpc - containerPort: 8016 name: ofrep env: - name: OTEL_SERVICE_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.labels['app.kubernetes.io/component'] - name: OTEL_COLLECTOR_NAME value: otel-collector - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative - name: FLAGD_METRICS_EXPORTER value: otel - name: FLAGD_OTEL_COLLECTOR_URI value: $(OTEL_COLLECTOR_NAME):4317 - name: OTEL_RESOURCE_ATTRIBUTES value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.2 resources: limits: memory: 75Mi volumeMounts: - name: config-rw mountPath: /etc/flagd - name: flagd-ui image: 'ghcr.io/open-telemetry/demo:2.0.2-flagd-ui' imagePullPolicy: IfNotPresent ports: - containerPort: 4000 name: service env: - name: OTEL_SERVICE_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.labels['app.kubernetes.io/component'] - name: OTEL_COLLECTOR_NAME value: otel-collector - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative - name: FLAGD_METRICS_EXPORTER value: otel - name: OTEL_EXPORTER_OTLP_ENDPOINT value: http://$(OTEL_COLLECTOR_NAME):4318 - name: OTEL_RESOURCE_ATTRIBUTES value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.2 resources: limits: memory: 100Mi volumeMounts: - mountPath: /app/data name: config-rw initContainers: - command: - sh - -c - cp /config-ro/demo.flagd.json /config-rw/demo.flagd.json && cat /config-rw/demo.flagd.json image: busybox name: init-config volumeMounts: - mountPath: /config-ro name: config-ro - mountPath: /config-rw name: config-rw volumes: - name: config-rw emptyDir: {} - configMap: name: flagd-config name: config-ro --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: apps/v1 kind: Deployment metadata: name: fraud-detection labels: opentelemetry.io/name: fraud-detection app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: fraud-detection app.kubernetes.io/name: fraud-detection app.kubernetes.io/version: "2.0.2" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: opentelemetry.io/name: fraud-detection template: metadata: labels: opentelemetry.io/name: fraud-detection app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: fraud-detection app.kubernetes.io/name: fraud-detection spec: serviceAccountName: opentelemetry-demo containers: - name: fraud-detection image: 'ghcr.io/open-telemetry/demo:2.0.2-fraud-detection' imagePullPolicy: IfNotPresent env: - name: OTEL_SERVICE_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.labels['app.kubernetes.io/component'] - name: OTEL_COLLECTOR_NAME value: otel-collector - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative - name: KAFKA_ADDR value: kafka:9092 - name: FLAGD_HOST value: flagd - name: FLAGD_PORT value: "8013" - name: OTEL_EXPORTER_OTLP_ENDPOINT value: http://$(OTEL_COLLECTOR_NAME):4318 - name: OTEL_RESOURCE_ATTRIBUTES value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.2 resources: limits: memory: 300Mi volumeMounts: initContainers: - command: - sh - -c - until nc -z -v -w30 kafka 9092; do echo waiting for kafka; sleep 2; done; image: busybox:latest name: wait-for-kafka volumes: --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: apps/v1 kind: Deployment metadata: name: frontend labels: opentelemetry.io/name: frontend app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: frontend app.kubernetes.io/name: frontend app.kubernetes.io/version: "2.0.2" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: opentelemetry.io/name: frontend template: metadata: labels: opentelemetry.io/name: frontend app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: frontend app.kubernetes.io/name: frontend spec: serviceAccountName: opentelemetry-demo containers: - name: frontend image: 'ghcr.io/open-telemetry/demo:2.0.2-frontend' imagePullPolicy: IfNotPresent ports: - containerPort: 8080 name: service env: - name: OTEL_SERVICE_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.labels['app.kubernetes.io/component'] - name: OTEL_COLLECTOR_NAME value: otel-collector - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative - name: FRONTEND_PORT value: "8080" - name: FRONTEND_ADDR value: :8080 - name: AD_ADDR value: ad:8080 - name: CART_ADDR value: cart:8080 - name: CHECKOUT_ADDR value: checkout:8080 - name: CURRENCY_ADDR value: currency:8080 - name: PRODUCT_CATALOG_ADDR value: product-catalog:8080 - name: RECOMMENDATION_ADDR value: recommendation:8080 - name: SHIPPING_ADDR value: shipping:8080 - name: FLAGD_HOST value: flagd - name: FLAGD_PORT value: "8013" - name: OTEL_COLLECTOR_HOST value: $(OTEL_COLLECTOR_NAME) - name: OTEL_EXPORTER_OTLP_ENDPOINT value: http://$(OTEL_COLLECTOR_NAME):4317 - name: WEB_OTEL_SERVICE_NAME value: frontend-web - name: PUBLIC_OTEL_EXPORTER_OTLP_TRACES_ENDPOINT value: http://localhost:8080/otlp-http/v1/traces - name: OTEL_RESOURCE_ATTRIBUTES value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.2 resources: limits: memory: 250Mi securityContext: runAsGroup: 1001 runAsNonRoot: true runAsUser: 1001 volumeMounts: volumes: --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: apps/v1 kind: Deployment metadata: name: frontend-proxy labels: opentelemetry.io/name: frontend-proxy app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: frontend-proxy app.kubernetes.io/name: frontend-proxy app.kubernetes.io/version: "2.0.2" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: opentelemetry.io/name: frontend-proxy template: metadata: labels: opentelemetry.io/name: frontend-proxy app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: frontend-proxy app.kubernetes.io/name: frontend-proxy spec: serviceAccountName: opentelemetry-demo containers: - name: frontend-proxy image: 'ghcr.io/open-telemetry/demo:2.0.2-frontend-proxy' imagePullPolicy: IfNotPresent ports: - containerPort: 8080 name: service env: - name: OTEL_SERVICE_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.labels['app.kubernetes.io/component'] - name: OTEL_COLLECTOR_NAME value: otel-collector - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative - name: ENVOY_PORT value: "8080" - name: FLAGD_HOST value: flagd - name: FLAGD_PORT value: "8013" - name: FLAGD_UI_HOST value: flagd - name: FLAGD_UI_PORT value: "4000" - name: FRONTEND_HOST value: frontend - name: FRONTEND_PORT value: "8080" - name: GRAFANA_HOST value: grafana - name: GRAFANA_PORT value: "80" - name: IMAGE_PROVIDER_HOST value: image-provider - name: IMAGE_PROVIDER_PORT value: "8081" - name: JAEGER_HOST value: jaeger-query - name: JAEGER_PORT value: "16686" - name: LOCUST_WEB_HOST value: load-generator - name: LOCUST_WEB_PORT value: "8089" - name: OTEL_COLLECTOR_HOST value: $(OTEL_COLLECTOR_NAME) - name: OTEL_COLLECTOR_PORT_GRPC value: "4317" - name: OTEL_COLLECTOR_PORT_HTTP value: "4318" - name: OTEL_RESOURCE_ATTRIBUTES value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.2 resources: limits: memory: 65Mi securityContext: runAsGroup: 101 runAsNonRoot: true runAsUser: 101 volumeMounts: volumes: --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: apps/v1 kind: Deployment metadata: name: image-provider labels: opentelemetry.io/name: image-provider app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: image-provider app.kubernetes.io/name: image-provider app.kubernetes.io/version: "2.0.2" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: opentelemetry.io/name: image-provider template: metadata: labels: opentelemetry.io/name: image-provider app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: image-provider app.kubernetes.io/name: image-provider spec: serviceAccountName: opentelemetry-demo containers: - name: image-provider image: 'ghcr.io/open-telemetry/demo:2.0.2-image-provider' imagePullPolicy: IfNotPresent ports: - containerPort: 8081 name: service env: - name: OTEL_SERVICE_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.labels['app.kubernetes.io/component'] - name: OTEL_COLLECTOR_NAME value: otel-collector - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative - name: IMAGE_PROVIDER_PORT value: "8081" - name: OTEL_COLLECTOR_PORT_GRPC value: "4317" - name: OTEL_COLLECTOR_HOST value: $(OTEL_COLLECTOR_NAME) - name: OTEL_RESOURCE_ATTRIBUTES value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.2 resources: limits: memory: 50Mi volumeMounts: volumes: --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: apps/v1 kind: Deployment metadata: name: kafka labels: opentelemetry.io/name: kafka app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: kafka app.kubernetes.io/name: kafka app.kubernetes.io/version: "2.0.2" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: opentelemetry.io/name: kafka template: metadata: labels: opentelemetry.io/name: kafka app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: kafka app.kubernetes.io/name: kafka spec: serviceAccountName: opentelemetry-demo containers: - name: kafka image: 'ghcr.io/open-telemetry/demo:2.0.2-kafka' imagePullPolicy: IfNotPresent ports: - containerPort: 9092 name: plaintext - containerPort: 9093 name: controller env: - name: OTEL_SERVICE_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.labels['app.kubernetes.io/component'] - name: OTEL_COLLECTOR_NAME value: otel-collector - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative - name: KAFKA_ADVERTISED_LISTENERS value: PLAINTEXT://kafka:9092 - name: OTEL_EXPORTER_OTLP_ENDPOINT value: http://$(OTEL_COLLECTOR_NAME):4318 - name: KAFKA_HEAP_OPTS value: -Xmx400M -Xms400M - name: OTEL_RESOURCE_ATTRIBUTES value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.2 resources: limits: memory: 600Mi securityContext: runAsGroup: 1000 runAsNonRoot: true runAsUser: 1000 volumeMounts: volumes: --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: apps/v1 kind: Deployment metadata: name: load-generator labels: opentelemetry.io/name: load-generator app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: load-generator app.kubernetes.io/name: load-generator app.kubernetes.io/version: "2.0.2" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: opentelemetry.io/name: load-generator template: metadata: labels: opentelemetry.io/name: load-generator app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: load-generator app.kubernetes.io/name: load-generator spec: serviceAccountName: opentelemetry-demo containers: - name: load-generator image: 'ghcr.io/open-telemetry/demo:2.0.2-load-generator' imagePullPolicy: IfNotPresent ports: - containerPort: 8089 name: service env: - name: OTEL_SERVICE_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.labels['app.kubernetes.io/component'] - name: OTEL_COLLECTOR_NAME value: otel-collector - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative - name: LOCUST_WEB_HOST value: 0.0.0.0 - name: LOCUST_WEB_PORT value: "8089" - name: LOCUST_USERS value: "10" - name: LOCUST_SPAWN_RATE value: "1" - name: LOCUST_HOST value: http://frontend-proxy:8080 - name: LOCUST_HEADLESS value: "false" - name: LOCUST_AUTOSTART value: "true" - name: LOCUST_BROWSER_TRAFFIC_ENABLED value: "true" - name: PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION value: python - name: FLAGD_HOST value: flagd - name: FLAGD_OFREP_PORT value: "8016" - name: OTEL_EXPORTER_OTLP_ENDPOINT value: http://$(OTEL_COLLECTOR_NAME):4317 - name: OTEL_RESOURCE_ATTRIBUTES value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.2 resources: limits: memory: 1500Mi volumeMounts: volumes: --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: apps/v1 kind: Deployment metadata: name: payment labels: opentelemetry.io/name: payment app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: payment app.kubernetes.io/name: payment app.kubernetes.io/version: "2.0.2" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: opentelemetry.io/name: payment template: metadata: labels: opentelemetry.io/name: payment app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: payment app.kubernetes.io/name: payment spec: serviceAccountName: opentelemetry-demo containers: - name: payment image: 'ghcr.io/open-telemetry/demo:2.0.2-payment' imagePullPolicy: IfNotPresent ports: - containerPort: 8080 name: service env: - name: OTEL_SERVICE_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.labels['app.kubernetes.io/component'] - name: OTEL_COLLECTOR_NAME value: otel-collector - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative - name: PAYMENT_PORT value: "8080" - name: FLAGD_HOST value: flagd - name: FLAGD_PORT value: "8013" - name: OTEL_EXPORTER_OTLP_ENDPOINT value: http://$(OTEL_COLLECTOR_NAME):4317 - name: OTEL_RESOURCE_ATTRIBUTES value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.2 resources: limits: memory: 120Mi securityContext: runAsGroup: 1000 runAsNonRoot: true runAsUser: 1000 volumeMounts: volumes: --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: apps/v1 kind: Deployment metadata: name: product-catalog labels: opentelemetry.io/name: product-catalog app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: product-catalog app.kubernetes.io/name: product-catalog app.kubernetes.io/version: "2.0.2" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: opentelemetry.io/name: product-catalog template: metadata: labels: opentelemetry.io/name: product-catalog app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: product-catalog app.kubernetes.io/name: product-catalog spec: serviceAccountName: opentelemetry-demo containers: - name: product-catalog image: 'ghcr.io/open-telemetry/demo:2.0.2-product-catalog' imagePullPolicy: IfNotPresent ports: - containerPort: 8080 name: service env: - name: OTEL_SERVICE_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.labels['app.kubernetes.io/component'] - name: OTEL_COLLECTOR_NAME value: otel-collector - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative - name: PRODUCT_CATALOG_PORT value: "8080" - name: PRODUCT_CATALOG_RELOAD_INTERVAL value: "10" - name: FLAGD_HOST value: flagd - name: FLAGD_PORT value: "8013" - name: OTEL_EXPORTER_OTLP_ENDPOINT value: http://$(OTEL_COLLECTOR_NAME):4317 - name: OTEL_RESOURCE_ATTRIBUTES value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.2 resources: limits: memory: 20Mi volumeMounts: - name: product-catalog-products mountPath: /usr/src/app/products volumes: - name: product-catalog-products configMap: name: product-catalog-products --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: apps/v1 kind: Deployment metadata: name: quote labels: opentelemetry.io/name: quote app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: quote app.kubernetes.io/name: quote app.kubernetes.io/version: "2.0.2" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: opentelemetry.io/name: quote template: metadata: labels: opentelemetry.io/name: quote app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: quote app.kubernetes.io/name: quote spec: serviceAccountName: opentelemetry-demo containers: - name: quote image: 'ghcr.io/open-telemetry/demo:2.0.2-quote' imagePullPolicy: IfNotPresent ports: - containerPort: 8080 name: service env: - name: OTEL_SERVICE_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.labels['app.kubernetes.io/component'] - name: OTEL_COLLECTOR_NAME value: otel-collector - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative - name: QUOTE_PORT value: "8080" - name: OTEL_PHP_AUTOLOAD_ENABLED value: "true" - name: OTEL_EXPORTER_OTLP_ENDPOINT value: http://$(OTEL_COLLECTOR_NAME):4318 - name: OTEL_RESOURCE_ATTRIBUTES value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.2 resources: limits: memory: 40Mi securityContext: runAsGroup: 33 runAsNonRoot: true runAsUser: 33 volumeMounts: volumes: --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: apps/v1 kind: Deployment metadata: name: recommendation labels: opentelemetry.io/name: recommendation app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: recommendation app.kubernetes.io/name: recommendation app.kubernetes.io/version: "2.0.2" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: opentelemetry.io/name: recommendation template: metadata: labels: opentelemetry.io/name: recommendation app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: recommendation app.kubernetes.io/name: recommendation spec: serviceAccountName: opentelemetry-demo containers: - name: recommendation image: 'ghcr.io/open-telemetry/demo:2.0.2-recommendation' imagePullPolicy: IfNotPresent ports: - containerPort: 8080 name: service env: - name: OTEL_SERVICE_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.labels['app.kubernetes.io/component'] - name: OTEL_COLLECTOR_NAME value: otel-collector - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative - name: RECOMMENDATION_PORT value: "8080" - name: PRODUCT_CATALOG_ADDR value: product-catalog:8080 - name: OTEL_PYTHON_LOG_CORRELATION value: "true" - name: PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION value: python - name: FLAGD_HOST value: flagd - name: FLAGD_PORT value: "8013" - name: OTEL_EXPORTER_OTLP_ENDPOINT value: http://$(OTEL_COLLECTOR_NAME):4317 - name: OTEL_RESOURCE_ATTRIBUTES value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.2 resources: limits: memory: 500Mi volumeMounts: volumes: --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: apps/v1 kind: Deployment metadata: name: shipping labels: opentelemetry.io/name: shipping app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: shipping app.kubernetes.io/name: shipping app.kubernetes.io/version: "2.0.2" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: opentelemetry.io/name: shipping template: metadata: labels: opentelemetry.io/name: shipping app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: shipping app.kubernetes.io/name: shipping spec: serviceAccountName: opentelemetry-demo containers: - name: shipping image: 'ghcr.io/open-telemetry/demo:2.0.2-shipping' imagePullPolicy: IfNotPresent ports: - containerPort: 8080 name: service env: - name: OTEL_SERVICE_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.labels['app.kubernetes.io/component'] - name: OTEL_COLLECTOR_NAME value: otel-collector - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative - name: SHIPPING_PORT value: "8080" - name: QUOTE_ADDR value: http://quote:8080 - name: OTEL_EXPORTER_OTLP_ENDPOINT value: http://$(OTEL_COLLECTOR_NAME):4317 - name: OTEL_RESOURCE_ATTRIBUTES value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.2 resources: limits: memory: 20Mi volumeMounts: volumes: --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: apps/v1 kind: Deployment metadata: name: valkey-cart labels: opentelemetry.io/name: valkey-cart app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: valkey-cart app.kubernetes.io/name: valkey-cart app.kubernetes.io/version: "2.0.2" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: opentelemetry.io/name: valkey-cart template: metadata: labels: opentelemetry.io/name: valkey-cart app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/component: valkey-cart app.kubernetes.io/name: valkey-cart spec: serviceAccountName: opentelemetry-demo containers: - name: valkey-cart image: 'valkey/valkey:7.2-alpine' imagePullPolicy: IfNotPresent ports: - containerPort: 6379 name: valkey-cart env: - name: OTEL_SERVICE_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.labels['app.kubernetes.io/component'] - name: OTEL_COLLECTOR_NAME value: otel-collector - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative - name: OTEL_RESOURCE_ATTRIBUTES value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.0.2 resources: limits: memory: 20Mi securityContext: runAsGroup: 1000 runAsNonRoot: true runAsUser: 999 volumeMounts: volumes: --- # Source: opentelemetry-demo/charts/opensearch/templates/statefulset.yaml apiVersion: apps/v1 kind: StatefulSet metadata: name: opensearch labels: app.kubernetes.io/name: opensearch app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/version: "2.19.0" app.kubernetes.io/component: opensearch annotations: majorVersion: "2" spec: serviceName: opensearch-headless selector: matchLabels: app.kubernetes.io/name: opensearch app.kubernetes.io/instance: opentelemetry-demo replicas: 1 podManagementPolicy: Parallel updateStrategy: type: RollingUpdate template: metadata: name: "opensearch" labels: app.kubernetes.io/name: opensearch app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/version: "2.19.0" app.kubernetes.io/component: opensearch annotations: configchecksum: 39d5e484f1cc28f685f786a856c4336341c6c034f5c0b1a81337e4a39511e47 spec: securityContext: fsGroup: 1000 runAsUser: 1000 automountServiceAccountToken: false affinity: podAntiAffinity: preferredDuringSchedulingIgnoredDuringExecution: - weight: 1 podAffinityTerm: topologyKey: kubernetes.io/hostname labelSelector: matchExpressions: - key: app.kubernetes.io/instance operator: In values: - opentelemetry-demo - key: app.kubernetes.io/name operator: In values: - opensearch terminationGracePeriodSeconds: 120 volumes: - name: config configMap: name: opensearch-config - emptyDir: {} name: config-emptydir enableServiceLinks: true initContainers: - name: configfile image: "opensearchproject/opensearch:2.19.0" imagePullPolicy: "IfNotPresent" command: - sh - -c - | #!/usr/bin/env bash cp -r /tmp/configfolder/* /tmp/config/ resources: {} volumeMounts: - mountPath: /tmp/config/ name: config-emptydir - name: config mountPath: /tmp/configfolder/opensearch.yml subPath: opensearch.yml containers: - name: "opensearch" securityContext: capabilities: drop: - ALL runAsNonRoot: true runAsUser: 1000 image: "opensearchproject/opensearch:2.19.0" imagePullPolicy: "IfNotPresent" readinessProbe: failureThreshold: 3 periodSeconds: 5 tcpSocket: port: 9200 timeoutSeconds: 3 startupProbe: failureThreshold: 30 initialDelaySeconds: 5 periodSeconds: 10 tcpSocket: port: 9200 timeoutSeconds: 3 ports: - name: http containerPort: 9200 - name: transport containerPort: 9300 - name: metrics containerPort: 9600 resources: limits: memory: 1100Mi requests: cpu: 1000m memory: 100Mi env: - name: node.name valueFrom: fieldRef: fieldPath: metadata.name - name: discovery.seed_hosts value: "opensearch-cluster-master-headless" - name: cluster.name value: "demo-cluster" - name: network.host value: "0.0.0.0" - name: OPENSEARCH_JAVA_OPTS value: "-Xms300m -Xmx300m" - name: node.roles value: "master,ingest,data,remote_cluster_client," - name: discovery.type value: "single-node" - name: bootstrap.memory_lock value: "true" - name: DISABLE_INSTALL_DEMO_CONFIG value: "true" - name: DISABLE_SECURITY_PLUGIN value: "true" volumeMounts: - name: config-emptydir mountPath: /usr/share/opensearch/config/opensearch.yml subPath: opensearch.yml