# 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: "3.2.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: "12.1.1" 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.135.0" app.kubernetes.io/part-of: opentelemetry-collector 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.6.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/version: "2.1.3" 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: "12.1.1" type: Opaque data: admin-user: "YWRtaW4=" admin-password: "YWRtaW4=" ldap-toml: "" --- # Source: opentelemetry-demo/charts/grafana/templates/configmap-dashboard-provider.yaml apiVersion: v1 kind: ConfigMap metadata: labels: app.kubernetes.io/name: grafana app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/version: "12.1.1" name: grafana-config-dashboards namespace: otel-demo data: provider.yaml: |- apiVersion: 1 providers: - name: 'sidecarProvider' orgId: 1 folder: '' folderUid: '' type: file disableDeletion: false allowUiUpdates: false updateIntervalSeconds: 30 options: foldersFromFilesStructure: false path: /tmp/dashboards --- # 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: "12.1.1" 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 --- # 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: "3.2.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.135.0" app.kubernetes.io/part-of: opentelemetry-collector app.kubernetes.io/component: standalone-collector data: relay: | connectors: spanmetrics: {} exporters: debug: {} opensearch: http: endpoint: http://opensearch:9200 tls: insecure: true logs_index: otel-logs logs_index_time_format: yyyy-MM-dd 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 resourcedetection: detectors: - env - system 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 nginx: collection_interval: 10s endpoint: http://image-provider:8081/status otlp: protocols: grpc: endpoint: ${env:MY_POD_IP}:4317 http: cors: allowed_origins: - http://* - https://* endpoint: ${env:MY_POD_IP}:4318 postgresql: endpoint: postgresql:5432 metrics: postgresql.blks_hit: enabled: true postgresql.blks_read: enabled: true postgresql.deadlocks: enabled: true postgresql.tup_deleted: enabled: true postgresql.tup_fetched: enabled: true postgresql.tup_inserted: enabled: true postgresql.tup_returned: enabled: true postgresql.tup_updated: enabled: true password: otel tls: insecure: true username: root 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 username: valkey zipkin: endpoint: ${env:MY_POD_IP}:9411 service: extensions: - health_check pipelines: logs: exporters: - opensearch - debug processors: - k8sattributes - memory_limiter - resourcedetection - resource - batch receivers: - otlp metrics: exporters: - otlphttp/prometheus - debug processors: - k8sattributes - memory_limiter - resourcedetection - resource - batch receivers: - httpcheck/frontend-proxy - nginx - otlp - postgresql - redis - spanmetrics traces: exporters: - otlp - debug - spanmetrics processors: - k8sattributes - memory_limiter - resourcedetection - resource - transform - batch receivers: - otlp - jaeger - zipkin telemetry: metrics: level: detailed readers: - periodic: exporter: otlp: endpoint: otel-collector:4318 protocol: http/protobuf 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.6.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: 1m scrape_interval: 1m scrape_timeout: 10s storage: tsdb: out_of_order_time_window: 30m otlp: keep_identifying_resource_attributes: true promote_resource_attributes: - service.instance.id - service.name - service.namespace - service.version - cloud.availability_zone - cloud.region - deployment.environment.name - k8s.cluster.name - k8s.container.name - k8s.cronjob.name - k8s.daemonset.name - k8s.deployment.name - k8s.job.name - k8s.namespace.name - k8s.node.name - k8s.pod.name - k8s.replicaset.name - k8s.statefulset.name - container.name - host.name - postgresql.database.name - postgresql.schema.name - postgresql.table.name - postgresql.index.name 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/version: "2.1.3" 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-config.yaml apiVersion: v1 kind: ConfigMap metadata: name: grafana-alerting namespace: otel-demo labels: app.kubernetes.io/version: "2.1.3" app.kubernetes.io/part-of: opentelemetry-demo grafana_alert: "1" data: {} --- # Source: opentelemetry-demo/templates/grafana-config.yaml apiVersion: v1 kind: ConfigMap metadata: name: grafana-dashboard-nginx-metrics namespace: otel-demo labels: app.kubernetes.io/version: "2.1.3" app.kubernetes.io/part-of: opentelemetry-demo grafana_dashboard: "1" data: NGINX-metrics.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": 6, "links": [], "panels": [ { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "description": "The total number of accepted client connections", "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green" }, { "color": "red", "value": 80 } ] } }, "overrides": [] }, "gridPos": { "h": 8, "w": 5, "x": 0, "y": 0 }, "id": 1, "options": { "colorMode": "value", "graphMode": "area", "justifyMode": "auto", "orientation": "auto", "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "showPercentChange": false, "textMode": "auto", "wideLayout": true }, "pluginVersion": "12.0.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "disableTextWrap": false, "editorMode": "builder", "expr": "nginx_connections_accepted_total", "fullMetaSearch": false, "includeNullMetadata": true, "legendFormat": "__auto", "range": true, "refId": "A", "useBackend": false } ], "title": "Accepted connections", "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "description": "The total number of handled connections", "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green" }, { "color": "red", "value": 80 } ] } }, "overrides": [] }, "gridPos": { "h": 8, "w": 5, "x": 5, "y": 0 }, "id": 3, "options": { "colorMode": "value", "graphMode": "area", "justifyMode": "auto", "orientation": "auto", "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "showPercentChange": false, "textMode": "auto", "wideLayout": true }, "pluginVersion": "12.0.2", "targets": [ { "disableTextWrap": false, "editorMode": "builder", "expr": "nginx_connections_handled_total", "fullMetaSearch": false, "includeNullMetadata": true, "legendFormat": "{{__name__}}", "range": true, "refId": "A", "useBackend": false } ], "title": "Connections handled", "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "description": "The total number of client requests", "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green" } ] } }, "overrides": [] }, "gridPos": { "h": 8, "w": 9, "x": 10, "y": 0 }, "id": 4, "options": { "colorMode": "value", "graphMode": "area", "justifyMode": "auto", "orientation": "auto", "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "showPercentChange": false, "textMode": "auto", "wideLayout": true }, "pluginVersion": "12.0.2", "targets": [ { "disableTextWrap": false, "editorMode": "builder", "expr": "nginx_requests_total", "fullMetaSearch": false, "includeNullMetadata": true, "legendFormat": "{{__name__}}", "range": true, "refId": "A", "useBackend": false } ], "title": "Total number of client requests", "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "description": "The current number of nginx connections by state", "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": 11, "w": 19, "x": 0, "y": 8 }, "id": 2, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "hideZeros": false, "mode": "single", "sort": "none" } }, "pluginVersion": "12.0.2", "targets": [ { "disableTextWrap": false, "editorMode": "builder", "expr": "nginx_connections_current", "fullMetaSearch": false, "includeNullMetadata": true, "legendFormat": "{{state}}", "range": true, "refId": "A", "useBackend": false } ], "title": "Number of connections by state", "type": "timeseries" } ], "preload": false, "schemaVersion": 41, "tags": [], "templating": { "list": [] }, "time": { "from": "now-15m", "to": "now" }, "timepicker": {}, "timezone": "browser", "title": "[Image-Provider] NGINX Metrics", "uid": "6fb665e0-cb81-40a5-bd21-a9485c5477b4", "version": 1 } --- # Source: opentelemetry-demo/templates/grafana-config.yaml apiVersion: v1 kind: ConfigMap metadata: name: grafana-dashboard-apm-dashboard namespace: otel-demo labels: app.kubernetes.io/version: "2.1.3" app.kubernetes.io/part-of: opentelemetry-demo grafana_dashboard: "1" data: apm-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": "APM dashboard for monitoring OpenTelemetry-based services. \n\nInstrument your applications using OpenTelemetry SDKs and send traces, metrics, and logs to Jaeger for traces, a Prometheus-compatible database for metrics, and OpenSearch for logs. This dashboard provides a centralized view of your application's health and performance. ", "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 1, "id": 5, "links": [], "panels": [ { "description": "service.namespace=${service_namespace}, service.name=${service_name}, deployment.environment.name=${deployment_environment_name}", "fieldConfig": { "defaults": {}, "overrides": [] }, "gridPos": { "h": 2, "w": 10, "x": 0, "y": 0 }, "id": 20, "options": { "code": { "language": "plaintext", "showLineNumbers": false, "showMiniMap": false }, "content": "

\"OpenTelemetry Service ${service_namespace}/${service_name}

\n", "mode": "html" }, "pluginVersion": "12.1.0", "title": "", "type": "text" }, { "datasource": { "type": "prometheus", "uid": "${prometheus_datasource}" }, "description": "Shows the timestamp of the latest metrics received in the past 24h.", "fieldConfig": { "defaults": { "color": { "fixedColor": "#24292e", "mode": "fixed" }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": 0 }, { "color": "red", "value": 80 } ] } }, "overrides": [] }, "gridPos": { "h": 2, "w": 3, "x": 10, "y": 0 }, "hideTimeOverride": true, "id": 39, "options": { "colorMode": "background", "graphMode": "none", "justifyMode": "auto", "orientation": "auto", "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "/^Time$/", "values": false }, "showPercentChange": false, "textMode": "auto", "wideLayout": true }, "pluginVersion": "12.1.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "editorMode": "code", "expr": "timestamp(sum by (deployment_environment_name, service_namespace, service_name) (target_info{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}) or absent{})\n", "interval": "60s", "legendFormat": "__auto", "range": true, "refId": "A" } ], "timeFrom": "now-24h", "title": "Latest metrics received", "type": "stat" }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 2 }, "id": 15, "panels": [], "title": "Server RED Metrics", "type": "row" }, { "datasource": { "type": "prometheus", "uid": "${prometheus_datasource}" }, "description": "HTTP & RPC endpoints aggregation on the `http.server.request.duration` & `rpc.server.duration` metrics.\n\nSee https://opentelemetry.io/docs/specs/semconv/http/http-metrics/#metric-httpserverrequestduration and https://opentelemetry.io/docs/specs/semconv/rpc/rpc-metrics/#metric-rpcserverduration", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "axisSoftMin": 0, "barAlignment": 0, "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "smooth", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "log": 10, "type": "log" }, "showPoints": "auto", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "min": 0, "noValue": "No HTTP or RPC operation", "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": 0 }, { "color": "red", "value": 80 } ] }, "unit": "s" }, "overrides": [] }, "gridPos": { "h": 6, "w": 5, "x": 0, "y": 3 }, "id": 17, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "hideZeros": false, "mode": "single", "sort": "none" } }, "pluginVersion": "12.1.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "${prometheus_datasource}" }, "disableTextWrap": false, "editorMode": "code", "expr": "histogram_quantile(\n 0.95,\n sum by (le, deployment_environment_name, service_namespace, service_name) (\n rate(\n http_server_request_duration_seconds_bucket{\n deployment_environment_name=~\"$deployment_environment_name\",\n service_namespace=~\"$service_namespace\",\n service_name=\"$service_name\"\n }[$__rate_interval]\n )\n )\n)", "fullMetaSearch": false, "includeNullMetadata": true, "interval": "60s", "legendFormat": "HTTP p95", "range": true, "refId": "HTTP P95", "useBackend": false }, { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "disableTextWrap": false, "editorMode": "code", "expr": "avg by (deployment_environment_name, service_namespace, service_name) (\n rate(\n http_server_request_duration_seconds_sum{\n deployment_environment_name=~\"$deployment_environment_name\",\n service_namespace=~\"$service_namespace\",\n service_name=\"$service_name\"\n }[$__rate_interval]\n )\n)\n/\navg by (deployment_environment_name, service_namespace, service_name) (\n rate(\n http_server_request_duration_seconds_count{\n deployment_environment_name=~\"$deployment_environment_name\",\n service_namespace=~\"$service_namespace\",\n service_name=\"$service_name\"\n }[$__rate_interval]\n )\n)", "fullMetaSearch": false, "hide": false, "includeNullMetadata": true, "interval": "60s", "legendFormat": "HTTP avg", "range": true, "refId": "HTTP AVG", "useBackend": false }, { "datasource": { "type": "prometheus", "uid": "${prometheus_datasource}" }, "editorMode": "code", "expr": "histogram_quantile(\n 0.95,\n sum by (le, deployment_environment_name, service_namespace, service_name) (\n rate(\n rpc_server_duration_milliseconds_bucket{\n deployment_environment_name=~\"$deployment_environment_name\",\n service_namespace=~\"$service_namespace\",\n service_name=\"$service_name\"\n }[$__rate_interval]\n ) / 1000\n )\n)", "hide": false, "instant": false, "interval": "60", "legendFormat": "RPC p95", "range": true, "refId": "RPC P95" }, { "datasource": { "type": "prometheus", "uid": "${prometheus_datasource}" }, "editorMode": "code", "expr": "avg by (deployment_environment_name, service_namespace, service_name) (\n rate(\n rpc_server_duration_milliseconds_sum{\n deployment_environment_name=~\"$deployment_environment_name\",\n service_namespace=~\"$service_namespace\",\n service_name=\"$service_name\"\n }[$__rate_interval]\n ) / 1000\n)\n/\navg by (deployment_environment_name, service_namespace, service_name) (\n rate(\n rpc_server_duration_milliseconds_count{\n deployment_environment_name=~\"$deployment_environment_name\",\n service_namespace=~\"$service_namespace\",\n service_name=\"$service_name\"\n }[$__rate_interval]\n )\n)", "hide": false, "instant": false, "interval": "60", "legendFormat": "RPC avg", "range": true, "refId": "RPC AVG" } ], "title": "Duration", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${prometheus_datasource}" }, "description": "HTTP and RPC endpoints aggregation on the `http.server.request.duration` and `rpc.server.duration` metrics. \n\nErrors are identified by : \n* `http.response.status_code=~\"5..\"`\n* `rpc.grpc.status_code!=\"0\"`\n\nSee https://opentelemetry.io/docs/specs/semconv/http/http-metrics/#metric-httpserverrequestduration\n", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "axisSoftMax": 100, "axisSoftMin": 0, "barAlignment": 0, "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "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": [], "noValue": "No HTTP or RPC operation", "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": 0 }, { "color": "red", "value": 80 } ] }, "unit": "percent" }, "overrides": [] }, "gridPos": { "h": 6, "w": 5, "x": 5, "y": 3 }, "id": 18, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "hideZeros": false, "mode": "single", "sort": "none" } }, "pluginVersion": "12.1.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "disableTextWrap": false, "editorMode": "code", "expr": "(\n (sum by(deployment_environment_name, service_namespace, service_name) (rate(http_server_request_duration_seconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\", http_response_status_code=~\"5..\"}[$__rate_interval])) * 100) \n / \n sum by(deployment_environment_name, service_namespace, service_name) (rate(http_server_request_duration_seconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}[$__rate_interval]))\n)\nor\n(\n 0\n * \n sum by(deployment_environment_name, service_namespace, service_name) (rate(http_server_request_duration_seconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}[$__rate_interval]))\n)", "fullMetaSearch": false, "hide": false, "includeNullMetadata": true, "instant": false, "interval": "60s", "legendFormat": "HTTP 5xx errors", "range": true, "refId": "HTTP 5xx", "useBackend": false }, { "datasource": { "type": "prometheus", "uid": "${prometheus_datasource}" }, "editorMode": "code", "expr": "((sum without (rpc_grpc_status_code, instance) (rate(rpc_server_duration_milliseconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\", rpc_grpc_status_code!=\"0\"}[$__rate_interval])) * 100) / sum without (rpc_grpc_status_code, instance) (rate(rpc_server_duration_milliseconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}[$__rate_interval])))\nor\n(0 * sum without (rpc_grpc_status_code, instance) (rate(rpc_server_duration_milliseconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}[$__rate_interval])))", "hide": false, "instant": false, "interval": "60", "legendFormat": "RPC errors", "range": true, "refId": "RPC Err" } ], "title": "Error", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${prometheus_datasource}" }, "description": "HTTP & RPC endpoints aggregation on the `http.server.request.duration` & `rpc.server.duration` metrics.\n\nSee https://opentelemetry.io/docs/specs/semconv/http/http-metrics/#metric-httpserverrequestduration", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "axisSoftMin": 0, "barAlignment": 0, "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "smooth", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "log": 10, "type": "log" }, "showPoints": "auto", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "min": 0, "noValue": "No HTTP or RPC operation", "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": 0 }, { "color": "red", "value": 80 } ] }, "unit": "reqps" }, "overrides": [] }, "gridPos": { "h": 6, "w": 5, "x": 10, "y": 3 }, "id": 19, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "hideZeros": false, "mode": "single", "sort": "none" } }, "pluginVersion": "12.1.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "${prometheus_datasource}" }, "editorMode": "code", "exemplar": false, "expr": "(sum(rate(http_server_request_duration_seconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}[$__rate_interval])) by (deployment_environment_name, service_namespace, service_name)) ", "hide": false, "instant": false, "interval": "60s", "legendFormat": "HTTP requests", "range": true, "refId": "HTTP RPS" }, { "datasource": { "type": "prometheus", "uid": "${prometheus_datasource}" }, "editorMode": "code", "expr": "(sum(rate(rpc_server_duration_milliseconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}[$__rate_interval])) by (deployment_environment_name, service_namespace, service_name)) * $__interval_ms / 1000", "hide": false, "instant": false, "interval": "60", "legendFormat": "RPC requests", "range": true, "refId": "RPC RPS" } ], "title": "Request Rate", "type": "timeseries" }, { "fieldConfig": { "defaults": {}, "overrides": [] }, "gridPos": { "h": 6, "w": 9, "x": 15, "y": 3 }, "id": 40, "options": { "alertInstanceLabelFilter": "{service_name=\"$service_name\", service_namespace=\"$service_namespace\"}", "alertName": "", "dashboardAlerts": false, "groupBy": [], "groupMode": "default", "maxItems": 20, "showInactiveAlerts": false, "sortOrder": 1, "stateFilter": { "error": true, "firing": true, "noData": false, "normal": false, "pending": true, "recovering": true }, "viewMode": "list" }, "pluginVersion": "12.1.0", "title": "Alerts", "type": "alertlist" }, { "datasource": { "type": "prometheus", "uid": "${prometheus_datasource}" }, "description": "Inbound HTTP operations of the service (aka HTTP endpoints) based on the `http.server.request.duration` metric.\n\nErrors are identified by `http.response.status_code=~\"5..\"`.\n\nSee https://opentelemetry.io/docs/specs/semconv/http/http-metrics/#metric-httpserverrequestduration", "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "custom": { "align": "auto", "cellOptions": { "type": "auto" }, "inspect": false }, "mappings": [], "noValue": "No HTTP operation", "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": 0 }, { "color": "red", "value": 80 } ] } }, "overrides": [ { "matcher": { "id": "byName", "options": "Duration (p99)" }, "properties": [ { "id": "unit", "value": "s" } ] }, { "matcher": { "id": "byName", "options": "Rate" }, "properties": [ { "id": "unit", "value": "reqps" }, { "id": "custom.width", "value": 219 } ] }, { "matcher": { "id": "byName", "options": "Error" }, "properties": [ { "id": "unit", "value": "percentunit" } ] } ] }, "gridPos": { "h": 6, "w": 12, "x": 0, "y": 9 }, "id": 21, "options": { "cellHeight": "sm", "footer": { "countRows": false, "fields": "", "reducer": [ "sum" ], "show": false }, "showHeader": true, "sortBy": [ { "desc": true, "displayName": "Operation" } ] }, "pluginVersion": "12.1.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "disableTextWrap": false, "editorMode": "code", "expr": "\n sum by (operation) (\n label_join(\n rate(http_server_request_duration_seconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}[$__rate_interval]),\n \"operation\",\n \" \",\n \"http_request_method\",\n \"http_route\"\n )\n )\n ", "fullMetaSearch": false, "includeNullMetadata": true, "interval": "60s", "legendFormat": "{{operation}}", "range": true, "refId": "RPS", "useBackend": false }, { "datasource": { "type": "prometheus", "uid": "${prometheus_datasource}" }, "editorMode": "code", "expr": "(\n sum by (operation) (\n label_join(\n rate(http_server_request_duration_seconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\", http_response_status_code=~\"5..\"}[$__rate_interval]),\n \"operation\",\n \" \",\n \"http_request_method\",\n \"http_route\"\n )\n )\n / \n sum by (operation) (\n label_join(\n rate(http_server_request_duration_seconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}[$__rate_interval]),\n \"operation\",\n \" \",\n \"http_request_method\",\n \"http_route\"\n )\n )\n ) or (0 * \n sum by (operation) (\n label_join(\n rate(http_server_request_duration_seconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}[$__rate_interval]),\n \"operation\",\n \" \",\n \"http_request_method\",\n \"http_route\"\n )\n )\n )", "hide": false, "instant": false, "interval": "60s", "legendFormat": "{{operation}}", "range": true, "refId": "ERR_PCT" }, { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "editorMode": "code", "expr": "\n histogram_quantile(\n 0.99,\n sum by (le, operation) (\n label_join(\n rate(http_server_request_duration_seconds_bucket{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}[5m]),\n \"operation\",\n \" \",\n \"http_request_method\",\n \"http_route\"\n )\n )\n )\n ", "hide": false, "instant": false, "interval": "60s", "legendFormat": "{{operation}}", "range": true, "refId": "Duration" } ], "title": "HTTP Operations", "transformations": [ { "id": "timeSeriesTable", "options": { "Duration": { "timeField": "Time" }, "ERR_PCT": { "timeField": "Time" }, "RPS": { "timeField": "Time" } } }, { "id": "joinByField", "options": { "byField": "operation", "mode": "outer" } }, { "id": "organize", "options": { "excludeByName": {}, "includeByName": {}, "indexByName": { "Trend #Duration": 1, "Trend #ERR_PCT": 2, "Trend #RPS": 3, "operation": 0 }, "renameByName": { "Trend #Duration": "Duration (p99)", "Trend #ERR_PCT": "Error", "Trend #RPS": "Rate", "operation": "Operation" } } } ], "type": "table" }, { "datasource": { "type": "prometheus", "uid": "${prometheus_datasource}" }, "description": "Inbound gRPC operations of the service (aka gRPC endpoints) based on the `rpc.server.request.duration` metric.\n\nErrors are identified by `rpc.grpc.status_code != 0` which make the panel specific to the gRPC protocol.\n\nhttps://opentelemetry.io/docs/specs/semconv/rpc/rpc-metrics/#metric-rpcserverduration", "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "custom": { "align": "auto", "cellOptions": { "type": "auto" }, "inspect": false }, "mappings": [], "noValue": "No RPC operation", "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": 0 }, { "color": "red", "value": 80 } ] } }, "overrides": [ { "matcher": { "id": "byName", "options": "Duration (p99)" }, "properties": [ { "id": "unit", "value": "ms" } ] }, { "matcher": { "id": "byName", "options": "Rate" }, "properties": [ { "id": "unit", "value": "reqps" } ] }, { "matcher": { "id": "byName", "options": "Error" }, "properties": [ { "id": "unit", "value": "percentunit" } ] } ] }, "gridPos": { "h": 6, "w": 12, "x": 12, "y": 9 }, "id": 27, "options": { "cellHeight": "sm", "footer": { "countRows": false, "fields": "", "reducer": [ "sum" ], "show": false }, "showHeader": true, "sortBy": [ { "desc": true, "displayName": "Operation" } ] }, "pluginVersion": "12.1.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "disableTextWrap": false, "editorMode": "code", "expr": "\nsum by (operation) (\n label_join(\n rate(rpc_server_duration_milliseconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}[$__rate_interval]),\n \"operation\",\n \"/\",\n \"rpc_service\",\n \"rpc_method\"\n )\n)\n ", "fullMetaSearch": false, "hide": false, "includeNullMetadata": true, "interval": "60s", "legendFormat": "__auto", "range": true, "refId": "RPS", "useBackend": false }, { "datasource": { "type": "prometheus", "uid": "${prometheus_datasource}" }, "editorMode": "code", "expr": "(\n sum by (operation) (\n label_join(\n rate(rpc_server_duration_milliseconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\", rpc_grpc_status_code!=\"0\"}[$__rate_interval]),\n \"operation\",\n \"/\",\n \"rpc_service\",\n \"rpc_method\"\n )\n )\n / \n sum by (operation) (\n label_join(\n rate(rpc_server_duration_milliseconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}[$__rate_interval]),\n \"operation\",\n \"/\",\n \"rpc_service\",\n \"rpc_method\"\n )\n )\n ) or (0 * \n sum by (operation) (\n label_join(\n rate(rpc_server_duration_milliseconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}[$__rate_interval]),\n \"operation\",\n \"/\",\n \"rpc_service\",\n \"rpc_method\"\n )\n )\n )\n ", "hide": false, "instant": false, "interval": "60s", "legendFormat": "__auto", "range": true, "refId": "ERR_PCT" }, { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "editorMode": "code", "expr": "\n histogram_quantile(\n 0.99,\n sum by (le, operation) (\n label_join(\n rate(rpc_server_duration_milliseconds_bucket{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}[5m]),\n \"operation\",\n \"/\",\n \"rpc_service\",\n \"rpc_method\"\n )\n )\n )\n ", "hide": false, "instant": false, "interval": "60s", "legendFormat": "{{operation}}", "range": true, "refId": "Duration" } ], "title": "gRPC Operations", "transformations": [ { "id": "timeSeriesTable", "options": { "Duration": { "timeField": "Time" }, "ERR_PCT": { "timeField": "Time" }, "RPS": { "timeField": "Time" } } }, { "id": "joinByField", "options": { "byField": "operation", "mode": "outer" } }, { "id": "organize", "options": { "excludeByName": {}, "includeByName": {}, "indexByName": { "Trend #Duration": 1, "Trend #ERR_PCT": 2, "Trend #RPS": 3, "operation": 0 }, "renameByName": { "Trend #Duration": "Duration (p99)", "Trend #ERR_PCT": "Error", "Trend #RPS": "Rate", "operation": "Operation" } } } ], "type": "table" }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 15 }, "id": 28, "panels": [], "title": "Outbound Services and Databases", "type": "row" }, { "datasource": { "type": "prometheus", "uid": "${prometheus_datasource}" }, "description": "HTTP calls made by the service based on the `http.client.request.duration` metric.\n\nCalls broken done by remote `server.address` and by `http.request.method`.\n\nSee https://opentelemetry.io/docs/specs/semconv/http/http-metrics/#metric-httpclientrequestduration", "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "custom": { "align": "auto", "cellOptions": { "type": "auto" }, "inspect": false }, "mappings": [], "noValue": "No HTTP call", "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": 0 }, { "color": "red", "value": 80 } ] } }, "overrides": [ { "matcher": { "id": "byName", "options": "Duration (P99)" }, "properties": [ { "id": "unit", "value": "s" } ] }, { "matcher": { "id": "byName", "options": "Rate" }, "properties": [ { "id": "unit", "value": "reqps" } ] }, { "matcher": { "id": "byName", "options": "Error" }, "properties": [ { "id": "unit", "value": "percentunit" } ] } ] }, "gridPos": { "h": 5, "w": 12, "x": 0, "y": 16 }, "id": 23, "options": { "cellHeight": "sm", "footer": { "countRows": false, "fields": "", "reducer": [ "sum" ], "show": false }, "showHeader": true }, "pluginVersion": "12.1.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "disableTextWrap": false, "editorMode": "code", "expr": "\n sum by (outbound_service) (\n label_join(\n rate(http_client_request_duration_seconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}[$__rate_interval]),\n \"outbound_service\",\n \" \",\n \"server_address\",\n \"http_request_method\",\n \"url_template\"\n )\n )\n ", "fullMetaSearch": false, "includeNullMetadata": true, "interval": "60s", "legendFormat": "{{server_address}} {{http_request_method}} {{url_template}}", "range": true, "refId": "RPS", "useBackend": false }, { "datasource": { "type": "prometheus", "uid": "${prometheus_datasource}" }, "editorMode": "code", "expr": "(\n sum by (outbound_service) (\n label_join(\n rate(http_client_request_duration_seconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\", http_response_status_code=~\"5..\"}[$__rate_interval]),\n \"outbound_service\",\n \" \",\n \"server_address\",\n \"http_request_method\",\n \"url_template\"\n )\n )\n / \n sum by (outbound_service) (\n label_join(\n rate(http_client_request_duration_seconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}[$__rate_interval]),\n \"outbound_service\",\n \" \",\n \"server_address\",\n \"http_request_method\",\n \"url_template\"\n )\n )\n ) or (0 * \n sum by (outbound_service) (\n label_join(\n rate(http_client_request_duration_seconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}[$__rate_interval]),\n \"outbound_service\",\n \" \",\n \"server_address\",\n \"http_request_method\",\n \"url_template\"\n )\n )\n )", "hide": false, "instant": false, "interval": "60s", "legendFormat": "{{server_address}} {{http_request_method}} {{url_template}}", "range": true, "refId": "ERR_PCT" }, { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "editorMode": "code", "expr": "\nhistogram_quantile(\n 0.99,\n sum by (le, outbound_service) (\n label_join(\n rate(http_client_request_duration_seconds_bucket{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}[5m]),\n \"outbound_service\",\n \" \",\n \"server_address\",\n \"http_request_method\",\n \"url_template\"\n )\n )\n)", "hide": false, "instant": false, "interval": "60s", "legendFormat": "{{server_address}} {{http_request_method}} {{url_template}}", "range": true, "refId": "DURATION" } ], "title": "Outbound HTTP Services", "transformations": [ { "id": "timeSeriesTable", "options": { "Duration": { "timeField": "Time" }, "ERR_PCT": { "timeField": "Time" }, "RPS": { "timeField": "Time" } } }, { "id": "joinByField", "options": { "byField": "outbound_service", "mode": "outer" } }, { "id": "organize", "options": { "excludeByName": {}, "includeByName": {}, "indexByName": { "Trend #DURATION": 1, "Trend #ERR_PCT": 2, "Trend #RPS": 3, "outbound_service": 0 }, "renameByName": { "Trend #DURATION": "Duration (P99)", "Trend #Duration": "Duration (p99)", "Trend #ERR_PCT": "Error", "Trend #RPS": "Rate", "operation": "Operation", "outbound_service": "Service" } } } ], "type": "table" }, { "datasource": { "type": "prometheus", "uid": "${prometheus_datasource}" }, "description": "DB calls made by the service based on the `db.client.operation.duration` metric.\n\nCalls broken down by `server.address` and `db.namespace`.\n\nSee https://opentelemetry.io/docs/specs/semconv/database/database-metrics/#metric-dbclientoperationduration\n", "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "custom": { "align": "auto", "cellOptions": { "type": "auto" }, "inspect": false }, "mappings": [], "noValue": "No database call", "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": 0 }, { "color": "red", "value": 80 } ] } }, "overrides": [ { "matcher": { "id": "byName", "options": "Duration (P99)" }, "properties": [ { "id": "unit", "value": "s" } ] }, { "matcher": { "id": "byName", "options": "Rate" }, "properties": [ { "id": "unit", "value": "reqps" } ] }, { "matcher": { "id": "byName", "options": "Error" }, "properties": [ { "id": "unit", "value": "percentunit" } ] } ] }, "gridPos": { "h": 5, "w": 12, "x": 12, "y": 16 }, "id": 24, "options": { "cellHeight": "sm", "footer": { "countRows": false, "fields": "", "reducer": [ "sum" ], "show": false }, "showHeader": true, "sortBy": [] }, "pluginVersion": "12.1.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "disableTextWrap": false, "editorMode": "code", "expr": "sum by (database) (\n label_join(\n rate(db_client_operation_duration_seconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}[$__rate_interval]),\n \"database\",\n \"/\",\n \"server_address\",\n \"db_namespace\"\n )\n)\n ", "fullMetaSearch": false, "hide": false, "includeNullMetadata": true, "interval": "60s", "legendFormat": "{{server_address}} {{db_namespace}}", "range": true, "refId": "RPS", "useBackend": false }, { "datasource": { "type": "prometheus", "uid": "${prometheus_datasource}" }, "editorMode": "code", "expr": "(\n sum by (database) (\n label_join(\n rate(db_client_operation_duration_seconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\", http_response_status_code=~\"5..\"}[$__rate_interval]),\n \"database\",\n \"/\",\n \"server_address\",\n \"db_namespace\"\n )\n )\n / \n sum by (database) (\n label_join(\n rate(db_client_operation_duration_seconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}[$__rate_interval]),\n \"database\",\n \"/\",\n \"server_address\",\n \"db_namespace\"\n )\n )\n ) or (0 * \n sum by (database) (\n label_join(\n rate(db_client_operation_duration_seconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}[$__rate_interval]),\n \"database\",\n \"/\",\n \"server_address\",\n \"db_namespace\"\n )\n )\n )", "hide": false, "instant": false, "interval": "60s", "legendFormat": "{{server_address}} {{db_namespace}}", "range": true, "refId": "ERR_PCT" }, { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "editorMode": "code", "expr": "\nhistogram_quantile(\n 0.99,\n sum by (le, database) (\n label_join(\n rate(db_client_operation_duration_seconds_bucket{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}[5m]),\n \"database\",\n \"/\",\n \"server_address\",\n \"db_namespace\"\n )\n )\n)", "hide": false, "instant": false, "interval": "60s", "legendFormat": "{{server_address}} {{db_namespace}}", "range": true, "refId": "DURATION" } ], "title": "Outbound Databases", "transformations": [ { "id": "timeSeriesTable", "options": { "DURATION": { "timeField": "Time" }, "Duration": { "timeField": "Time" }, "ERR_PCT": { "timeField": "Time" }, "RPS": { "timeField": "Time" } } }, { "id": "joinByField", "options": { "byField": "database", "mode": "outer" } }, { "id": "organize", "options": { "excludeByName": {}, "includeByName": {}, "indexByName": { "Trend #DURATION": 1, "Trend #ERR_PCT": 2, "Trend #RPS": 3, "database": 0 }, "renameByName": { "Trend #DURATION": "Duration (P99)", "Trend #Duration": "Duration (p99)", "Trend #ERR_PCT": "Error", "Trend #RPS": "Rate", "database": "Database", "database_operation": "Database Operation", "operation": "Operation", "outbound_service": "Service" } } } ], "type": "table" }, { "datasource": { "type": "prometheus", "uid": "${prometheus_datasource}" }, "description": "gRPC calls made by the service based on the `rpc.client.request.duration` metric.\n\nSpecific to gRPC due to the usage of the `grpc.status.code` attribute to identify errors.\n\nCalls broken down by `server.address`, `rpc.service`, and `rpc.method`.\n\nSee https://opentelemetry.io/docs/specs/semconv/rpc/rpc-metrics/#rpc-client\n\n", "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "custom": { "align": "auto", "cellOptions": { "type": "auto" }, "inspect": false }, "mappings": [], "noValue": "No RPC call", "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": 0 }, { "color": "red", "value": 80 } ] } }, "overrides": [ { "matcher": { "id": "byName", "options": "Duration (P99)" }, "properties": [ { "id": "unit", "value": "ms" } ] }, { "matcher": { "id": "byName", "options": "Rate" }, "properties": [ { "id": "unit", "value": "reqps" } ] }, { "matcher": { "id": "byName", "options": "Error" }, "properties": [ { "id": "unit", "value": "percentunit" } ] } ] }, "gridPos": { "h": 5, "w": 12, "x": 0, "y": 21 }, "id": 32, "options": { "cellHeight": "sm", "footer": { "countRows": false, "fields": "", "reducer": [ "sum" ], "show": false }, "showHeader": true }, "pluginVersion": "12.1.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "disableTextWrap": false, "editorMode": "code", "expr": "\n sum by (outbound_service) (\n label_join(\n rate(rpc_client_duration_milliseconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}[$__rate_interval]),\n \"outbound_service\",\n \"/\",\n \"server_address\",\n \"rpc_service\",\n \"rpc_method\"\n )\n )\n ", "fullMetaSearch": false, "hide": false, "includeNullMetadata": true, "interval": "60s", "legendFormat": "__auto", "range": true, "refId": "RPS", "useBackend": false }, { "datasource": { "type": "prometheus", "uid": "${prometheus_datasource}" }, "editorMode": "code", "expr": "(\n sum by (outbound_service) (\n label_join(\n rate(rpc_client_duration_milliseconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\", http_response_status_code=~\"5..\"}[$__rate_interval]),\n \"outbound_service\",\n \"/\",\n \"server_address\",\n \"rpc_service\",\n \"rpc_method\"\n )\n )\n / \n sum by (outbound_service) (\n label_join(\n rate(rpc_client_duration_milliseconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}[$__rate_interval]),\n \"outbound_service\",\n \"/\",\n \"server_address\",\n \"rpc_service\",\n \"rpc_method\"\n )\n )\n ) or (0 * \n sum by (outbound_service) (\n label_join(\n rate(rpc_client_duration_milliseconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}[$__rate_interval]),\n \"outbound_service\",\n \"/\",\n \"server_address\",\n \"rpc_service\",\n \"rpc_method\"\n )\n )\n )", "hide": false, "instant": false, "interval": "60s", "legendFormat": "__auto", "range": true, "refId": "ERR_PCT" }, { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "editorMode": "code", "expr": "\nhistogram_quantile(\n 0.99,\n sum by (le, outbound_service) (\n label_join(\n rate(rpc_client_duration_milliseconds_bucket{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}[5m]),\n \"outbound_service\",\n \"/\",\n \"server_address\",\n \"rpc_service\",\n \"rpc_method\"\n )\n )\n)", "hide": false, "instant": false, "interval": "60s", "legendFormat": "__auto", "range": true, "refId": "DURATION" } ], "title": "Outbound gRPC Services", "transformations": [ { "id": "timeSeriesTable", "options": { "Duration": { "timeField": "Time" }, "ERR_PCT": { "timeField": "Time" }, "RPS": { "timeField": "Time" } } }, { "id": "joinByField", "options": { "byField": "outbound_service", "mode": "outer" } }, { "id": "organize", "options": { "excludeByName": {}, "includeByName": {}, "indexByName": { "Trend #DURATION": 1, "Trend #ERR_PCT": 2, "Trend #RPS": 3, "outbound_service": 0 }, "renameByName": { "Trend #DURATION": "Duration (P99)", "Trend #Duration": "Duration (p99)", "Trend #ERR_PCT": "Error", "Trend #RPS": "Rate", "operation": "Operation", "outbound_service": "Service Method" } } } ], "type": "table" }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 26 }, "id": 42, "panels": [], "title": "Service instances", "type": "row" }, { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "custom": { "align": "auto", "cellOptions": { "type": "auto" }, "inspect": false }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": 0 }, { "color": "red", "value": 80 } ] } }, "overrides": [ { "matcher": { "id": "byName", "options": "Host CPU" }, "properties": [ { "id": "unit", "value": "percentunit" } ] }, { "matcher": { "id": "byName", "options": "Host Memory" }, "properties": [ { "id": "unit", "value": "percentunit" } ] } ] }, "gridPos": { "h": 4, "w": 24, "x": 0, "y": 27 }, "id": 41, "options": { "cellHeight": "sm", "footer": { "countRows": false, "fields": "", "reducer": [ "sum" ], "show": false }, "frameIndex": 1, "showHeader": true }, "pluginVersion": "12.1.0", "targets": [ { "editorMode": "code", "expr": "sum by (service_instance_id_host_name) (\n label_join(\n (\n sum by (service_instance_id, host_name) (\n rate(system_cpu_time_seconds_total{job=\"\", state!=\"idle\"}[$__rate_interval])\n )\n * on(host_name) group_left(service_instance_id)\n target_info{service_name=\"${service_name}\"}\n ),\n \"service_instance_id_host_name\",\n \" / \",\n \"service_instance_id\",\n \"host_name\"\n )\n)", "hide": false, "legendFormat": "__auto", "range": true, "refId": "cpu_time_percentage" }, { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "editorMode": "code", "expr": "sum by (service_instance_id_host_name) (\n label_join(\n (\n (\n sum by (service_instance_id, host_name) (\n system_memory_usage_bytes{job=\"\", state!=\"free\"}\n )\n /\n sum by (service_instance_id, host_name) (\n system_memory_usage_bytes{job=\"\"}\n )\n )\n * on(host_name) group_left(service_instance_id) (\n target_info{service_name=\"${service_name}\"}\n )\n ),\n \"service_instance_id_host_name\",\n \" / \",\n \"service_instance_id\",\n \"host_name\"\n )\n)", "hide": false, "instant": false, "legendFormat": "__auto", "range": true, "refId": "memory_usage_pct" } ], "title": "Service instance / host", "transformations": [ { "id": "timeSeriesTable", "options": { "A": { "timeField": "Time" }, "cpu_time_percentage": { "timeField": "Time" }, "memory_usage_pct": { "timeField": "Time" } } }, { "id": "joinByField", "options": { "byField": "service_instance_id_host_name", "mode": "outer" } }, { "id": "organize", "options": { "excludeByName": {}, "includeByName": {}, "indexByName": {}, "renameByName": { "Trend #cpu_time_percentage": "Host CPU", "Trend #memory_usage_pct": "Host Memory", "service_instance_id_host_name": "Instance / Host" } } } ], "type": "table" }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 31 }, "id": 25, "panels": [], "title": "Logs", "type": "row" }, { "datasource": { "type": "grafana-opensearch-datasource", "uid": "${opensearch_datasource}" }, "description": "Logs of the service, filtered by `service.name`, `service.namespace`, and `deployment.environment.name`.\n\nTo explore the logs, open the menu clicking on the icon `⋮` of this panel and click on `Explore`.", "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "custom": { "align": "auto", "cellOptions": { "type": "auto" }, "inspect": false }, "mappings": [], "noValue": "No application logs", "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": 0 }, { "color": "red", "value": 80 } ] } }, "overrides": [ { "matcher": { "id": "byName", "options": "@timestamp" }, "properties": [ { "id": "custom.width", "value": 226 } ] }, { "matcher": { "id": "byName", "options": "severity.text" }, "properties": [ { "id": "custom.width", "value": 136 } ] }, { "matcher": { "id": "byName", "options": "instrumentationScope.name" }, "properties": [ { "id": "custom.width", "value": 246 } ] } ] }, "gridPos": { "h": 15, "w": 24, "x": 0, "y": 32 }, "id": 26, "options": { "cellHeight": "sm", "footer": { "countRows": false, "fields": "", "reducer": [ "sum" ], "show": false }, "showHeader": true, "sortBy": [] }, "pluginVersion": "12.1.0", "targets": [ { "alias": "", "bucketAggs": [ { "field": "observedTimestamp", "id": "2", "settings": { "interval": "auto" }, "type": "date_histogram" } ], "datasource": { "type": "grafana-opensearch-datasource", "uid": "${opensearch_datasource}" }, "format": "table", "hide": false, "luceneQueryType": "Logs", "metrics": [ { "id": "1", "type": "logs" } ], "query": "search source=otel-logs-* | where resource.service.name=\"$service_name\" and resource.service.namespace=\"$service_namespace\" | fields @timestamp, severity.text, body, instrumentationScope.name\n", "queryType": "PPL", "refId": "B", "timeField": "observedTimestamp" } ], "title": "", "transformations": [ { "id": "formatTime", "options": { "outputFormat": "YYYY-MM-DD HH:MM:ss.sss", "timeField": "@timestamp", "timezone": "browser", "useTimezone": true } }, { "id": "organize", "options": { "excludeByName": {}, "includeByName": {}, "indexByName": { "@timestamp": 0, "body": 3, "instrumentationScope.name": 2, "severity.text": 1 }, "renameByName": { "@timestamp": "Time", "body": "Message", "instrumentationScope.name": "Logger", "severity.text": "Severity" } } } ], "type": "table" }, { "collapsed": true, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 47 }, "id": 29, "panels": [ { "datasource": { "type": "jaeger", "uid": "${jaeger_datasource}" }, "description": "Traces containing a span emitted by the service", "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "custom": { "align": "auto", "cellOptions": { "type": "auto" }, "inspect": false }, "mappings": [], "noValue": "No traces", "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": 0 }, { "color": "red", "value": 80 } ] } }, "overrides": [ { "matcher": { "id": "byName", "options": "Trace Service" }, "properties": [ { "id": "custom.hidden", "value": true } ] }, { "matcher": { "id": "byName", "options": "Span ID" }, "properties": [ { "id": "custom.hidden", "value": false } ] }, { "matcher": { "id": "byName", "options": "deployment.environment.name" }, "properties": [ { "id": "custom.hidden", "value": true } ] }, { "matcher": { "id": "byName", "options": "service.name" }, "properties": [ { "id": "custom.hidden", "value": true } ] }, { "matcher": { "id": "byName", "options": "service.namespace" }, "properties": [ { "id": "custom.hidden", "value": true } ] } ] }, "gridPos": { "h": 8, "w": 15, "x": 0, "y": 58 }, "id": 30, "options": { "cellHeight": "sm", "footer": { "countRows": false, "fields": "", "reducer": [ "sum" ], "show": false }, "frameIndex": 0, "showHeader": true }, "pluginVersion": "12.1.0", "targets": [ { "datasource": { "type": "jaeger", "uid": "${jaeger_datasource}" }, "queryType": "search", "refId": "A", "service": "$service_name", "tags": "service.namespace=\"$service_namespace\"" } ], "title": "", "type": "table" } ], "title": "Traces", "type": "row" } ], "preload": false, "refresh": "30s", "schemaVersion": 41, "tags": [], "templating": { "list": [ { "allowCustomValue": false, "current": { "text": "Prometheus", "value": "webstore-metrics" }, "description": "OpenTelemetry metrics. \nSend metrics using the Prometheus OTLP endpoint activating `keep_identifying_resource_attributes` and resource attribute promotion (aka `promote_resource_attributes`) including `service.name`, service.namespace`, `service.instance.id`, and `deployment.environment.name`", "label": "Metrics", "name": "prometheus_datasource", "options": [], "query": "prometheus", "refresh": 1, "regex": "", "type": "datasource" }, { "allowCustomValue": false, "current": { "text": "Jaeger", "value": "webstore-traces" }, "description": "OpenTelemetry traces", "label": "Traces", "name": "jaeger_datasource", "options": [], "query": "jaeger", "refresh": 1, "regex": "", "type": "datasource" }, { "allowCustomValue": false, "current": { "text": "OpenSearch", "value": "webstore-logs" }, "description": "OpenTelemetry logs.", "label": "Logs", "name": "opensearch_datasource", "options": [], "query": "grafana-opensearch-datasource", "refresh": 1, "regex": "", "type": "datasource" }, { "current": { "text": ".*", "value": ".*" }, "description": "Waiting to implement support of the optional value of `deployment.environment.name` in the OpenSearch and Jager panels, hide variable.", "hide": 2, "label": "Environment", "name": "deployment_environment_name", "query": ".*", "skipUrlSync": true, "type": "constant" }, { "allValue": ".*", "allowCustomValue": false, "current": { "text": "opentelemetry-demo", "value": "opentelemetry-demo" }, "datasource": { "type": "prometheus", "uid": "${prometheus_datasource}" }, "definition": "label_values(target_info{deployment_environment_name=~\"$deployment_environment_name\"},service_namespace)", "description": "Service namespace.\nResource attribute `service.namespace` via `target_info`", "includeAll": false, "label": "Namespace", "name": "service_namespace", "options": [], "query": { "qryType": 1, "query": "label_values(target_info{deployment_environment_name=~\"$deployment_environment_name\"},service_namespace)", "refId": "PrometheusVariableQueryEditor-VariableQuery" }, "refresh": 1, "regex": "", "sort": 1, "type": "query" }, { "current": { "text": "checkout", "value": "checkout" }, "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "definition": "label_values(target_info{service_namespace=~\"$service_namespace\", deployment_environment_name=~\"$deployment_environment_name\"},service_name)", "description": "Service name.\nResource attribute `service.name` via `target_info`.", "label": "Name", "name": "service_name", "options": [], "query": { "qryType": 1, "query": "label_values(target_info{service_namespace=~\"$service_namespace\", deployment_environment_name=~\"$deployment_environment_name\"},service_name)", "refId": "PrometheusVariableQueryEditor-VariableQuery" }, "refresh": 2, "regex": "", "sort": 1, "type": "query" } ] }, "time": { "from": "now-30m", "to": "now" }, "timepicker": {}, "timezone": "", "title": "APM Dashboard (Jaeger, Prometheus, OpenSearch)", "uid": "febljk0a32qyoa", "version": 1 } --- # Source: opentelemetry-demo/templates/grafana-config.yaml apiVersion: v1 kind: ConfigMap metadata: name: grafana-dashboard-demo-dashboard namespace: otel-demo labels: app.kubernetes.io/version: "2.1.3" app.kubernetes.io/part-of: opentelemetry-demo grafana_dashboard: "1" 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-logs-*\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-logs-*\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": "" } --- # Source: opentelemetry-demo/templates/grafana-config.yaml apiVersion: v1 kind: ConfigMap metadata: name: grafana-dashboard-exemplars-dashboard namespace: otel-demo labels: app.kubernetes.io/version: "2.1.3" app.kubernetes.io/part-of: opentelemetry-demo grafana_dashboard: "1" data: 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": 3, "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.6.1", "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-09 }, "legend": { "show": true }, "rowsFrame": { "layout": "auto" }, "tooltip": { "mode": "single", "showColorScale": false, "yHistogram": false }, "yAxis": { "axisPlacement": "left", "reverse": false } }, "pluginVersion": "11.6.1", "targets": [ { "disableTextWrap": false, "editorMode": "builder", "exemplar": true, "expr": "sum by(le) (rate(app_cart_get_cart_latency_seconds_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" }, { "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": { "hideZeros": false, "mode": "single", "sort": "none" } }, "pluginVersion": "11.6.1", "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_seconds_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-09 }, "legend": { "show": true }, "rowsFrame": { "layout": "auto" }, "tooltip": { "mode": "single", "showColorScale": false, "yHistogram": false }, "yAxis": { "axisPlacement": "left", "reverse": false } }, "pluginVersion": "11.6.1", "targets": [ { "disableTextWrap": false, "editorMode": "builder", "exemplar": true, "expr": "sum by(le) (rate(app_cart_add_item_latency_seconds_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": { "hideZeros": false, "mode": "single", "sort": "none" } }, "pluginVersion": "11.6.1", "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_seconds_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": 41, "tags": [], "templating": { "list": [] }, "time": { "from": "now-15m", "to": "now" }, "timepicker": {}, "timezone": "browser", "title": "Cart Service Exemplars", "uid": "ce6sd46kfkglca", "version": 1 } --- # Source: opentelemetry-demo/templates/grafana-config.yaml apiVersion: v1 kind: ConfigMap metadata: name: grafana-dashboard-linux-dashboard namespace: otel-demo labels: app.kubernetes.io/version: "2.1.3" app.kubernetes.io/part-of: opentelemetry-demo grafana_dashboard: "1" data: linux-dashboard.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": "OpenTelemetry Collector hostmetrics", "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 1, "id": 4, "links": [], "panels": [ { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 0 }, "id": 267, "panels": [], "title": "overview【 $host_name】", "type": "row" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "description": "Busy state of all CPU cores together\n\nhttps://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/receiver/hostmetricsreceiver/internal/scraper/cpuscraper/documentation.md", "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "decimals": 1, "mappings": [ { "options": { "match": "null", "result": { "text": "N/A" } }, "type": "special" } ], "max": 100, "min": 0, "thresholds": { "mode": "absolute", "steps": [ { "color": "rgba(50, 172, 45, 0.97)" }, { "color": "rgba(237, 129, 40, 0.89)", "value": 85 }, { "color": "rgba(245, 54, 54, 0.9)", "value": 95 } ] }, "unit": "percentunit" }, "overrides": [] }, "gridPos": { "h": 4, "w": 3, "x": 0, "y": 1 }, "id": 20, "options": { "minVizHeight": 75, "minVizWidth": 75, "orientation": "horizontal", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "showThresholdLabels": false, "showThresholdMarkers": true, "sizing": "auto" }, "pluginVersion": "12.0.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "code", "expr": "sum(system_cpu_utilization_ratio{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\", job=\"\", state!=\"idle\"})", "hide": false, "instant": false, "legendFormat": "__auto", "range": true, "refId": "B" } ], "title": "CPU Busy", "type": "gauge" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "description": "Non available RAM memory\n\nhttps://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/receiver/hostmetricsreceiver/internal/scraper/memoryscraper/documentation.md", "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "decimals": 1, "mappings": [], "max": 100, "min": 0, "thresholds": { "mode": "absolute", "steps": [ { "color": "rgba(50, 172, 45, 0.97)" }, { "color": "rgba(237, 129, 40, 0.89)", "value": 80 }, { "color": "rgba(245, 54, 54, 0.9)", "value": 90 } ] }, "unit": "percentunit" }, "overrides": [] }, "gridPos": { "h": 4, "w": 3, "x": 3, "y": 1 }, "id": 16, "options": { "minVizHeight": 75, "minVizWidth": 75, "orientation": "horizontal", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "showThresholdLabels": false, "showThresholdMarkers": true, "sizing": "auto" }, "pluginVersion": "12.0.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "disableTextWrap": false, "editorMode": "code", "exemplar": false, "expr": "system_memory_utilization_ratio{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"$node_name\", host_name=~\"$host_name\", job=\"\", state=\"used\"}", "format": "time_series", "fullMetaSearch": false, "hide": false, "includeNullMetadata": true, "instant": false, "intervalFactor": 1, "range": true, "refId": "A", "step": 240, "useBackend": false } ], "title": "RAM Used", "type": "gauge" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "description": "Used FS\n\nhttps://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/hostmetricsreceiver#collecting-host-metrics-from-inside-a-container-linux-only", "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "decimals": 1, "mappings": [ { "options": { "match": "null", "result": { "text": "N/A" } }, "type": "special" } ], "max": 100, "min": 0, "thresholds": { "mode": "absolute", "steps": [ { "color": "rgba(50, 172, 45, 0.97)" }, { "color": "rgba(237, 129, 40, 0.89)", "value": 80 }, { "color": "rgba(245, 54, 54, 0.9)", "value": 90 } ] }, "unit": "percentunit" }, "overrides": [] }, "gridPos": { "h": 4, "w": 3, "x": 6, "y": 1 }, "id": 154, "options": { "minVizHeight": 75, "minVizWidth": 75, "orientation": "horizontal", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "showThresholdLabels": false, "showThresholdMarkers": true, "sizing": "auto" }, "pluginVersion": "12.0.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "code", "expr": "1 \n-\nsum(system_filesystem_usage_bytes{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\", state=\"free\"}) \n/ \nsum(system_filesystem_usage_bytes{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\"})", "hide": false, "instant": false, "legendFormat": "__auto", "range": true, "refId": "C" } ], "title": "FS Used", "type": "gauge" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "description": "Busy state of all CPU cores together (5 min average)\n\nhttps://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/receiver/hostmetricsreceiver/internal/scraper/loadscraper/documentation.md", "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "decimals": 1, "mappings": [ { "options": { "match": "null", "result": { "text": "N/A" } }, "type": "special" } ], "max": 100, "min": 0, "thresholds": { "mode": "absolute", "steps": [ { "color": "rgba(50, 172, 45, 0.97)" }, { "color": "rgba(237, 129, 40, 0.89)", "value": 85 }, { "color": "rgba(245, 54, 54, 0.9)", "value": 95 } ] }, "unit": "percent" }, "overrides": [] }, "gridPos": { "h": 4, "w": 3, "x": 9, "y": 1 }, "id": 155, "options": { "minVizHeight": 75, "minVizWidth": 75, "orientation": "horizontal", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "showThresholdLabels": false, "showThresholdMarkers": true, "sizing": "auto" }, "pluginVersion": "12.0.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "code", "exemplar": false, "expr": "system_cpu_load_average_5m{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\"} ", "format": "time_series", "hide": false, "instant": true, "intervalFactor": 1, "legendFormat": "__auto", "range": false, "refId": "sysload_5m", "step": 240 } ], "title": "Sys Load (5m avg)", "type": "gauge" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "description": "Busy state of all CPU cores together (15 min average)\n\nhttps://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/receiver/hostmetricsreceiver/internal/scraper/loadscraper/documentation.md", "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "decimals": 1, "mappings": [ { "options": { "match": "null", "result": { "text": "N/A" } }, "type": "special" } ], "max": 100, "min": 0, "thresholds": { "mode": "absolute", "steps": [ { "color": "rgba(50, 172, 45, 0.97)" }, { "color": "rgba(237, 129, 40, 0.89)", "value": 85 }, { "color": "rgba(245, 54, 54, 0.9)", "value": 95 } ] }, "unit": "percent" }, "overrides": [] }, "gridPos": { "h": 4, "w": 3, "x": 12, "y": 1 }, "id": 19, "options": { "minVizHeight": 75, "minVizWidth": 75, "orientation": "horizontal", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "showThresholdLabels": false, "showThresholdMarkers": true, "sizing": "auto" }, "pluginVersion": "12.0.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "code", "exemplar": false, "expr": "system_cpu_load_average_15m{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\"} ", "hide": false, "instant": true, "intervalFactor": 1, "range": false, "refId": "sysload_15m", "step": 240 } ], "title": "Sys Load (15m avg)", "type": "gauge" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "description": "Used Swap\n\nhttps://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/receiver/hostmetricsreceiver/internal/scraper/pagingscraper/documentation.md", "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "decimals": 1, "mappings": [ { "options": { "match": "null", "result": { "text": "N/A" } }, "type": "special" } ], "max": 100, "min": 0, "thresholds": { "mode": "absolute", "steps": [ { "color": "rgba(50, 172, 45, 0.97)" }, { "color": "rgba(237, 129, 40, 0.89)", "value": 10 }, { "color": "rgba(245, 54, 54, 0.9)", "value": 25 } ] }, "unit": "percent" }, "overrides": [] }, "gridPos": { "h": 4, "w": 3, "x": 15, "y": 1 }, "id": 21, "options": { "minVizHeight": 75, "minVizWidth": 75, "orientation": "horizontal", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "showThresholdLabels": false, "showThresholdMarkers": true, "sizing": "auto" }, "pluginVersion": "12.0.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "code", "exemplar": false, "expr": "sum(system_paging_usage_bytes { k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\", state=\"used\" })\n/\nsum(system_paging_usage_bytes { k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\"})", "instant": true, "intervalFactor": 1, "range": false, "refId": "A", "step": 240 } ], "title": "SWAP Used", "type": "gauge" }, { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "description": "Total number of CPU cores", "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "mappings": [ { "options": { "match": "null", "result": { "text": "N/A" } }, "type": "special" } ], "thresholds": { "mode": "absolute", "steps": [ { "color": "green" }, { "color": "red", "value": 80 } ] }, "unit": "short" }, "overrides": [] }, "gridPos": { "h": 2, "w": 2, "x": 18, "y": 1 }, "id": 14, "maxDataPoints": 100, "options": { "colorMode": "none", "graphMode": "none", "justifyMode": "auto", "orientation": "horizontal", "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "showPercentChange": false, "textMode": "auto", "wideLayout": true }, "pluginVersion": "12.0.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "fej9ntb4ninswf" }, "editorMode": "code", "expr": "system_cpu_logical_count{ k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\", state=\"used\" }", "legendFormat": "__auto", "range": true, "refId": "A" } ], "title": "CPU Cores", "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "description": "Total RAM", "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "decimals": 0, "mappings": [ { "options": { "match": "null", "result": { "text": "N/A" } }, "type": "special" } ], "thresholds": { "mode": "absolute", "steps": [ { "color": "green" }, { "color": "red", "value": 80 } ] }, "unit": "bytes" }, "overrides": [] }, "gridPos": { "h": 2, "w": 2, "x": 20, "y": 1 }, "id": 75, "maxDataPoints": 100, "options": { "colorMode": "none", "graphMode": "none", "justifyMode": "auto", "orientation": "horizontal", "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "showPercentChange": false, "textMode": "auto", "wideLayout": true }, "pluginVersion": "12.0.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "fej9ntb4ninswf" }, "editorMode": "code", "exemplar": false, "expr": "system_memory_limit_bytes{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\"}", "instant": true, "intervalFactor": 1, "legendFormat": "__auto", "range": false, "refId": "A", "step": 240 } ], "title": "RAM Total", "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "description": "Total SWAP", "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "decimals": 0, "mappings": [ { "options": { "match": "null", "result": { "text": "N/A" } }, "type": "special" } ], "thresholds": { "mode": "absolute", "steps": [ { "color": "green" }, { "color": "red", "value": 80 } ] }, "unit": "bytes" }, "overrides": [] }, "gridPos": { "h": 2, "w": 2, "x": 22, "y": 1 }, "id": 18, "maxDataPoints": 100, "options": { "colorMode": "none", "graphMode": "none", "justifyMode": "auto", "orientation": "horizontal", "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "showPercentChange": false, "textMode": "auto", "wideLayout": true }, "pluginVersion": "12.0.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "code", "exemplar": false, "expr": "sum(system_paging_usage_bytes{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\"})", "instant": true, "intervalFactor": 1, "legendFormat": "__auto", "range": false, "refId": "A", "step": 240 }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "code", "expr": "", "hide": false, "instant": false, "legendFormat": "__auto", "range": true, "refId": "B" } ], "title": "SWAP Total", "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "description": "Total FS\n\nhttps://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/receiver/hostmetricsreceiver/internal/scraper/filesystemscraper/documentation.md", "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "decimals": 0, "mappings": [ { "options": { "match": "null", "result": { "text": "N/A" } }, "type": "special" } ], "thresholds": { "mode": "absolute", "steps": [ { "color": "rgba(50, 172, 45, 0.97)" }, { "color": "rgba(237, 129, 40, 0.89)", "value": 70 }, { "color": "rgba(245, 54, 54, 0.9)", "value": 90 } ] }, "unit": "bytes" }, "overrides": [] }, "gridPos": { "h": 2, "w": 2, "x": 18, "y": 3 }, "id": 23, "maxDataPoints": 100, "options": { "colorMode": "none", "graphMode": "none", "justifyMode": "auto", "orientation": "horizontal", "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "showPercentChange": false, "textMode": "auto", "wideLayout": true }, "pluginVersion": "12.0.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "fej9ntb4ninswf" }, "editorMode": "code", "exemplar": false, "expr": "sum(system_filesystem_usage_bytes{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\"})", "format": "time_series", "hide": false, "instant": true, "intervalFactor": 1, "range": false, "refId": "A", "step": 240 } ], "title": "FS Total", "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "description": "System uptime", "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "decimals": 1, "mappings": [ { "options": { "match": "null", "result": { "text": "N/A" } }, "type": "special" } ], "thresholds": { "mode": "absolute", "steps": [ { "color": "green" }, { "color": "red", "value": 80 } ] }, "unit": "s" }, "overrides": [] }, "gridPos": { "h": 2, "w": 4, "x": 20, "y": 3 }, "id": 15, "maxDataPoints": 100, "options": { "colorMode": "none", "graphMode": "none", "justifyMode": "auto", "orientation": "horizontal", "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "showPercentChange": false, "textMode": "auto", "wideLayout": true }, "pluginVersion": "12.0.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "code", "exemplar": false, "expr": "system_uptime_seconds{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\"}", "instant": true, "intervalFactor": 1, "legendFormat": "__auto", "range": false, "refId": "A", "step": 240 }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "code", "expr": "", "hide": false, "instant": false, "legendFormat": "__auto", "range": true, "refId": "B" } ], "title": "Uptime", "type": "stat" }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 5 }, "id": 266, "panels": [], "title": "Basic", "type": "row" }, { "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": 40, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "smooth", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": false, "stacking": { "group": "A", "mode": "percent" }, "thresholdsStyle": { "mode": "off" } }, "links": [], "mappings": [], "min": 0, "thresholds": { "mode": "absolute", "steps": [ { "color": "green" }, { "color": "red", "value": 80 } ] }, "unit": "percentunit" }, "overrides": [ { "matcher": { "id": "byName", "options": "Busy System" }, "properties": [ { "id": "color", "value": { "fixedColor": "#890F02", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "Busy User" }, "properties": [ { "id": "color", "value": { "fixedColor": "blue", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "Busy Wait" }, "properties": [ { "id": "color", "value": { "fixedColor": "yellow", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "Idle" }, "properties": [ { "id": "color", "value": { "fixedColor": "#7EB26D", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "Busy IRQs" }, "properties": [ { "id": "color", "value": { "fixedColor": "super-light-yellow", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "Busy Other" }, "properties": [ { "id": "color", "value": { "fixedColor": "light-orange", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "Idle" }, "properties": [ { "id": "color", "value": { "fixedColor": "green", "mode": "fixed" } } ] } ] }, "gridPos": { "h": 7, "w": 6, "x": 0, "y": 6 }, "id": 77, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true, "width": 250 }, "tooltip": { "hideZeros": false, "mode": "multi", "sort": "desc" } }, "pluginVersion": "12.0.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "fej9ntb4ninswf" }, "editorMode": "code", "expr": "sum (irate(system_cpu_time_seconds_total{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\", state=\"system\"}[$__rate_interval])) \n/\nsum ((irate(system_cpu_time_seconds_total{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\"}[$__rate_interval])))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "Busy System", "range": true, "refId": "busy system", "step": 240 }, { "datasource": { "type": "prometheus", "uid": "fej9ntb4ninswf" }, "editorMode": "code", "expr": "sum (irate(system_cpu_time_seconds_total{kk8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\", state=\"user\"}[$__rate_interval])) \n/ \nsum ((irate(system_cpu_time_seconds_total{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\"}[$__rate_interval])))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "Busy User", "range": true, "refId": "busy user", "step": 240 }, { "datasource": { "type": "prometheus", "uid": "fej9ntb4ninswf" }, "editorMode": "code", "expr": "sum(irate(system_cpu_time_seconds_total{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\", state=\"wait\"}[$__rate_interval])) \n/ \nsum ((irate(system_cpu_time_seconds_total{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\"}[$__rate_interval])))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "Busy Wait", "range": true, "refId": "busy wait", "step": 240 }, { "datasource": { "type": "prometheus", "uid": "fej9ntb4ninswf" }, "editorMode": "code", "expr": "sum (irate(system_cpu_time_seconds_total{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\", state=~\".*irq\"}[$__rate_interval])) \n/\nsum((irate(system_cpu_time_seconds_total{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\"}[$__rate_interval])))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "Busy IRQs", "range": true, "refId": "busy irq", "step": 240 }, { "datasource": { "type": "prometheus", "uid": "fej9ntb4ninswf" }, "editorMode": "code", "expr": "sum(irate(system_cpu_time_seconds_total{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\", state!~\".*irq\", state!=\"idle\", state!=\"user\", state!=\"wait\", state!=\"system\"}[$__rate_interval]))\n/\nsum ((irate(system_cpu_time_seconds_total{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\"}[$__rate_interval])))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "Busy Other", "range": true, "refId": "busy other", "step": 240 }, { "datasource": { "type": "prometheus", "uid": "fej9ntb4ninswf" }, "editorMode": "code", "expr": "sum by(host_name) (irate(system_cpu_time_seconds_total{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\", state=\"idle\"}[$__rate_interval])) \n/ \non(host_name) group_left sum by (host_name)((irate(system_cpu_time_seconds_total{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\"}[$__rate_interval])))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "Idle", "range": true, "refId": "idle", "step": 240 } ], "title": "CPU", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "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": 40, "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": "normal" }, "thresholdsStyle": { "mode": "off" } }, "links": [], "mappings": [], "min": 0, "thresholds": { "mode": "absolute", "steps": [ { "color": "green" }, { "color": "red", "value": 80 } ] }, "unit": "bytes" }, "overrides": [ { "matcher": { "id": "byName", "options": "Apps" }, "properties": [ { "id": "color", "value": { "fixedColor": "#629E51", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "Buffers" }, "properties": [ { "id": "color", "value": { "fixedColor": "#614D93", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "Cache" }, "properties": [ { "id": "color", "value": { "fixedColor": "#6D1F62", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "Cached" }, "properties": [ { "id": "color", "value": { "fixedColor": "#511749", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "Committed" }, "properties": [ { "id": "color", "value": { "fixedColor": "#508642", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "Free" }, "properties": [ { "id": "color", "value": { "fixedColor": "#0A437C", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "Hardware Corrupted - Amount of RAM that the kernel identified as corrupted / not working" }, "properties": [ { "id": "color", "value": { "fixedColor": "#CFFAFF", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "Inactive" }, "properties": [ { "id": "color", "value": { "fixedColor": "#584477", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "PageTables" }, "properties": [ { "id": "color", "value": { "fixedColor": "#0A50A1", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "Page_Tables" }, "properties": [ { "id": "color", "value": { "fixedColor": "#0A50A1", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "RAM_Free" }, "properties": [ { "id": "color", "value": { "fixedColor": "#E0F9D7", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "SWAP Used" }, "properties": [ { "id": "color", "value": { "fixedColor": "#BF1B00", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "Slab" }, "properties": [ { "id": "color", "value": { "fixedColor": "#806EB7", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "Slab_Cache" }, "properties": [ { "id": "color", "value": { "fixedColor": "#E0752D", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "Swap" }, "properties": [ { "id": "color", "value": { "fixedColor": "#BF1B00", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "Swap Used" }, "properties": [ { "id": "color", "value": { "fixedColor": "#BF1B00", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "Swap_Cache" }, "properties": [ { "id": "color", "value": { "fixedColor": "#C15C17", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "Swap_Free" }, "properties": [ { "id": "color", "value": { "fixedColor": "#2F575E", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "Unused" }, "properties": [ { "id": "color", "value": { "fixedColor": "#EAB839", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "RAM Total" }, "properties": [ { "id": "color", "value": { "fixedColor": "#E0F9D7", "mode": "fixed" } }, { "id": "custom.fillOpacity", "value": 0 }, { "id": "custom.stacking", "value": { "group": false, "mode": "normal" } } ] }, { "matcher": { "id": "byName", "options": "RAM Cache + Buffer" }, "properties": [ { "id": "color", "value": { "fixedColor": "#052B51", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "RAM Free" }, "properties": [ { "id": "color", "value": { "fixedColor": "#7EB26D", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "Available" }, "properties": [ { "id": "color", "value": { "fixedColor": "#DEDAF7", "mode": "fixed" } }, { "id": "custom.fillOpacity", "value": 0 }, { "id": "custom.stacking", "value": { "group": false, "mode": "normal" } } ] } ] }, "gridPos": { "h": 7, "w": 5, "x": 6, "y": 6 }, "id": 78, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true, "width": 350 }, "tooltip": { "hideZeros": false, "mode": "multi", "sort": "none" } }, "pluginVersion": "12.0.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "code", "expr": "sum(system_memory_usage_bytes{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\"})", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "Available", "range": true, "refId": "A", "step": 240 }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "code", "expr": "sum(system_memory_usage_bytes{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\", state=\"free\"})", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "RAM Free", "range": true, "refId": "B", "step": 240 }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "code", "expr": "sum(system_memory_usage_bytes{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\", state=~\"cached|buffered\"})", "format": "time_series", "intervalFactor": 1, "legendFormat": "RAM Cache + Buffer", "range": true, "refId": "C", "step": 240 }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "code", "exemplar": false, "expr": "sum(system_memory_usage_bytes{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\", state=\"used\"})", "format": "time_series", "instant": false, "intervalFactor": 1, "legendFormat": "Used", "range": true, "refId": "E", "step": 240 } ], "title": "Memory", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "description": "", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "Receive (-) / Transmit (+)", "axisPlacement": "auto", "barAlignment": 0, "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 40, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": 3600000, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "links": [], "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green" }, { "color": "red", "value": 80 } ] }, "unit": "binBps" }, "overrides": [ { "matcher": { "id": "byRegexp", "options": "/.*Rec.*/" }, "properties": [ { "id": "custom.transform", "value": "negative-Y" } ] } ] }, "gridPos": { "h": 7, "w": 6, "x": 11, "y": 6 }, "id": 74, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "hideZeros": false, "mode": "multi", "sort": "none" } }, "pluginVersion": "12.0.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "code", "expr": "sum (rate(system_network_io_bytes_total{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\", direction=\"receive\", job=\"\"}[$__rate_interval]))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "Receive", "range": true, "refId": "receive", "step": 240 }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "code", "expr": "sum (rate(system_network_io_bytes_total{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\", direction=\"transmit\", job=\"\"}[$__rate_interval]))", "format": "time_series", "intervalFactor": 1, "legendFormat": "Transmit", "range": true, "refId": "transmit", "step": 240 } ], "title": "Network Traffic", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "description": "", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "Read (-) / Write (+)", "axisPlacement": "auto", "barAlignment": 0, "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 40, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "smooth", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "links": [], "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green" }, { "color": "red", "value": 80 } ] }, "unit": "Bps" }, "overrides": [ { "matcher": { "id": "byRegexp", "options": "/.*Read*./" }, "properties": [ { "id": "custom.transform", "value": "negative-Y" } ] } ] }, "gridPos": { "h": 7, "w": 7, "x": 17, "y": 6 }, "id": 42, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "hideZeros": false, "mode": "multi", "sort": "none" } }, "pluginVersion": "12.0.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "code", "expr": "sum(irate(system_disk_io_bytes_total{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\", direction=\"read\"}[$__rate_interval]))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "Read", "range": true, "refId": "read", "step": 240 }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "code", "expr": "sum(irate(system_disk_io_bytes_total{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\", direction=\"write\"}[$__rate_interval]))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "Write", "range": true, "refId": "write", "step": 240 }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "editorMode": "code", "expr": "", "hide": false, "instant": false, "legendFormat": "__auto", "range": true, "refId": "C" } ], "title": "I/O Usage Read / Write", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "custom": { "align": "auto", "cellOptions": { "type": "auto" }, "inspect": false }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green" }, { "color": "red", "value": 80 } ] } }, "overrides": [ { "matcher": { "id": "byName", "options": "Trend #transmit_bytes" }, "properties": [ { "id": "unit", "value": "binBps" } ] }, { "matcher": { "id": "byName", "options": "Trend #receive_bytes" }, "properties": [ { "id": "unit", "value": "binBps" } ] }, { "matcher": { "id": "byName", "options": "Trend #receive_dropped_packets" }, "properties": [ { "id": "unit", "value": "pps" } ] }, { "matcher": { "id": "byName", "options": "Trend #transmit_dropped_packets" }, "properties": [ { "id": "unit", "value": "pps" } ] }, { "matcher": { "id": "byName", "options": "Trend #receive_errors" }, "properties": [ { "id": "unit", "value": "pps" } ] }, { "matcher": { "id": "byName", "options": "Trend #transmit_errors" }, "properties": [ { "id": "unit", "value": "pps" } ] } ] }, "gridPos": { "h": 8, "w": 15, "x": 0, "y": 14 }, "id": 270, "options": { "cellHeight": "sm", "footer": { "countRows": false, "fields": "", "reducer": [ "sum" ], "show": false }, "showHeader": true }, "pluginVersion": "12.0.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "disableTextWrap": false, "editorMode": "code", "expr": "sum by(device) (rate(system_network_io_bytes_total{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\", job=\"\", direction=\"transmit\"}[$__rate_interval]))", "fullMetaSearch": false, "hide": false, "includeNullMetadata": true, "instant": false, "legendFormat": "__auto", "range": true, "refId": "transmit_bytes", "useBackend": false }, { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "editorMode": "code", "expr": "sum by(device) (rate(system_network_io_bytes_total{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\", job=\"\", direction=\"receive\"}[$__rate_interval]))", "hide": false, "instant": false, "legendFormat": "__auto", "range": true, "refId": "receive_bytes" }, { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "editorMode": "code", "expr": "sum by(device) (rate(system_network_dropped_total{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\", job=\"\",direction=\"receive\"}[$__rate_interval]))", "hide": false, "instant": false, "legendFormat": "__auto", "range": true, "refId": "receive_dropped_packets" }, { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "editorMode": "code", "expr": "sum by(device) (rate(system_network_dropped_total{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\", job=\"\",direction=\"transmit\"}[$__rate_interval]))", "hide": false, "instant": false, "legendFormat": "__auto", "range": true, "refId": "transmit_dropped_packets" }, { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "editorMode": "code", "expr": "sum by(device) (rate(system_network_errors_total{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\", job=\"\",direction=\"receive\"}[$__rate_interval]))", "hide": false, "instant": false, "legendFormat": "__auto", "range": true, "refId": "receive_errors" }, { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "editorMode": "code", "expr": "sum by(device) (rate(system_network_errors_total{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\", job=\"\",direction=\"transmit\"}[$__rate_interval]))", "hide": false, "instant": false, "legendFormat": "__auto", "range": true, "refId": "transmit_errors" } ], "title": "Network traffic", "transformations": [ { "id": "timeSeriesTable", "options": { "A": { "timeField": "Time" }, "receive": { "timeField": "Time" }, "receive_bytes": { "timeField": "Time" }, "receive_dropped_packets": { "timeField": "Time" }, "receive_errors": { "timeField": "Time" }, "transmit": { "timeField": "Time" }, "transmit_bytes": { "timeField": "Time" }, "transmit_dropped_packets": { "timeField": "Time" }, "transmit_errors": { "timeField": "Time" } } }, { "id": "joinByField", "options": { "byField": "device", "mode": "outer" } }, { "id": "organize", "options": { "excludeByName": {}, "includeByName": {}, "indexByName": { "Trend #receive_bytes": 4, "Trend #receive_dropped_packets": 5, "Trend #receive_errors": 3, "Trend #transmit_bytes": 1, "Trend #transmit_dropped_packets": 2, "Trend #transmit_errors": 6, "device": 0 }, "renameByName": { "Trend #receive": "Receive", "Trend #receive_bytes": "Receive", "Trend #receive_dropped_packets": "Receive dropped", "Trend #receive_errors": "Transmit err", "Trend #transmit": "Transmit", "Trend #transmit_bytes": "Transmit", "Trend #transmit_dropped_packets": "Transmit dropped", "Trend #transmit_errors": "Receive err", "device": "Interface" } } } ], "type": "table" }, { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "custom": { "align": "auto", "cellOptions": { "type": "auto" }, "inspect": false }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green" }, { "color": "red", "value": 80 } ] }, "unit": "bytes" }, "overrides": [ { "matcher": { "id": "byName", "options": "Used %" }, "properties": [ { "id": "custom.cellOptions", "value": { "mode": "basic", "type": "gauge", "valueDisplayMode": "color" } }, { "id": "unit", "value": "percentunit" }, { "id": "min", "value": 0 }, { "id": "max", "value": 1 } ] }, { "matcher": { "id": "byName", "options": "Free" }, "properties": [ { "id": "custom.width", "value": 80 } ] }, { "matcher": { "id": "byName", "options": "Total" }, "properties": [ { "id": "custom.width", "value": 80 } ] }, { "matcher": { "id": "byName", "options": "Used" }, "properties": [ { "id": "custom.width", "value": 78 } ] }, { "matcher": { "id": "byName", "options": "Mount" }, "properties": [ { "id": "custom.width", "value": 200 } ] } ] }, "gridPos": { "h": 8, "w": 9, "x": 15, "y": 14 }, "id": 269, "options": { "cellHeight": "sm", "footer": { "countRows": false, "fields": "", "reducer": [ "sum" ], "show": false }, "frameIndex": 0, "showHeader": true, "sortBy": [] }, "pluginVersion": "12.0.2", "targets": [ { "disableTextWrap": false, "editorMode": "code", "exemplar": false, "expr": "sum by(mountpoint) (system_filesystem_usage_bytes{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\", state=\"free\"})", "format": "table", "fullMetaSearch": false, "includeNullMetadata": true, "instant": true, "legendFormat": "__auto", "range": false, "refId": "free", "useBackend": false }, { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "editorMode": "code", "exemplar": false, "expr": "sum by(mountpoint) (system_filesystem_usage_bytes{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\"})", "format": "table", "hide": false, "instant": true, "legendFormat": "__auto", "range": false, "refId": "total" } ], "title": "Disk usage", "transformations": [ { "id": "groupBy", "options": { "fields": { "/oldroot": { "aggregations": [ "lastNotNull" ], "operation": "aggregate" }, "/var/lib": { "aggregations": [ "lastNotNull" ], "operation": "aggregate" }, "Value": { "aggregations": [ "lastNotNull" ], "operation": "aggregate" }, "Value #free": { "aggregations": [ "lastNotNull" ], "operation": "aggregate" }, "Value #total": { "aggregations": [ "lastNotNull" ], "operation": "aggregate" }, "mountpoint": { "aggregations": [], "operation": "groupby" } } } }, { "id": "merge", "options": {} }, { "id": "calculateField", "options": { "alias": "used", "binary": { "left": { "matcher": { "id": "byName", "options": "Value #total (lastNotNull)" } }, "operator": "-", "right": { "matcher": { "id": "byName", "options": "Value #free (lastNotNull)" } } }, "mode": "binary", "reduce": { "reducer": "sum" } } }, { "id": "calculateField", "options": { "alias": "Used %", "binary": { "left": { "matcher": { "id": "byName", "options": "used" } }, "operator": "/", "right": { "matcher": { "id": "byName", "options": "Value #total (lastNotNull)" } } }, "mode": "binary", "reduce": { "reducer": "sum" } } }, { "id": "organize", "options": { "excludeByName": {}, "includeByName": {}, "indexByName": {}, "renameByName": { "Used %": "Used %", "Value #free (lastNotNull)": "Free", "Value #total (lastNotNull)": "Total", "mountpoint": "Mount", "used": "Used" } } }, { "id": "sortBy", "options": { "fields": {}, "sort": [ { "field": "Mount" } ] } } ], "type": "table" }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 13 }, "id": 272, "panels": [], "title": "Details", "type": "row" } ], "preload": false, "refresh": "", "schemaVersion": 41, "tags": [ "linux", "opentelemetry" ], "templating": { "list": [ { "current": { "text": "Prometheus", "value": "webstore-metrics" }, "includeAll": false, "label": "Data Source", "name": "DS_PROMETHEUS", "options": [], "query": "prometheus", "refresh": 1, "regex": "(?!grafanacloud-usage|grafanacloud-ml-metrics).+", "type": "datasource" }, { "allValue": ".*", "allowCustomValue": true, "current": { "text": "All", "value": "$__all" }, "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "definition": "label_values(otelcol_process_uptime,k8s_cluster_name)", "description": "When deploying PostgreSQL on Kubernetes, name of the Kubernetes cluster. \nFor other deployments, select \"All\". ", "includeAll": true, "label": "K8s Cluster", "multi": true, "name": "k8s_cluster_name", "options": [], "query": { "qryType": 1, "query": "label_values(otelcol_process_uptime,k8s_cluster_name)", "refId": "PrometheusVariableQueryEditor-VariableQuery" }, "refresh": 2, "regex": "", "sort": 1, "type": "query" }, { "allValue": ".*", "allowCustomValue": false, "current": { "text": "All", "value": "$__all" }, "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "definition": "label_values(otelcol_process_uptime{k8s_cluster_name=~\"$k8s_cluster_name\"},k8s_node_name)", "description": "When monitoring Kubernetes, name of the K8s node.\nFor other deployments, select \"All\". ", "includeAll": true, "label": "K8s node", "name": "node_name", "options": [], "query": { "qryType": 1, "query": "label_values(otelcol_process_uptime{k8s_cluster_name=~\"$k8s_cluster_name\"},k8s_node_name)", "refId": "PrometheusVariableQueryEditor-VariableQuery" }, "refresh": 2, "regex": "", "sort": 1, "type": "query" }, { "allValue": ".*", "current": { "text": "docker-desktop", "value": "docker-desktop" }, "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "definition": "label_values(otelcol_process_uptime_seconds_total,host_name)", "includeAll": true, "label": "Host", "name": "host_name", "options": [], "query": { "qryType": 1, "query": "label_values(otelcol_process_uptime_seconds_total,host_name)", "refId": "PrometheusVariableQueryEditor-VariableQuery" }, "refresh": 2, "regex": "", "sort": 5, "type": "query" }, { "allowCustomValue": false, "current": { "text": "", "value": "" }, "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "definition": "query_result(count(otelcol_process_uptime{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$ip\"}))", "hide": 2, "label": "host count", "name": "host_count", "options": [], "query": { "qryType": 3, "query": "query_result(count(otelcol_process_uptime{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$ip\"}))", "refId": "PrometheusVariableQueryEditor-VariableQuery" }, "refresh": 2, "regex": "/{} (.*) .*/", "type": "query" } ] }, "time": { "from": "now-30m", "to": "now" }, "timepicker": {}, "timezone": "browser", "title": "Linux", "uid": "otel-demo-hostmetrics", "version": 1 } --- # Source: opentelemetry-demo/templates/grafana-config.yaml apiVersion: v1 kind: ConfigMap metadata: name: grafana-dashboard-opentelemetry-collector namespace: otel-demo labels: app.kubernetes.io/version: "2.1.3" app.kubernetes.io/part-of: opentelemetry-demo grafana_dashboard: "1" data: 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-09 }, "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-09 }, "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-09 }, "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-09 }, "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-09 }, "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": "" } --- # Source: opentelemetry-demo/templates/grafana-config.yaml apiVersion: v1 kind: ConfigMap metadata: name: grafana-dashboard-postgresql-dashboard namespace: otel-demo labels: app.kubernetes.io/version: "2.1.3" app.kubernetes.io/part-of: opentelemetry-demo grafana_dashboard: "1" data: postgresql-dashboard.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": "Performance metrics for PostgreSQL instrumented with the OpenTelemetry Collector PostgreSQL receiver.", "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 0, "id": 6, "links": [ { "asDropdown": false, "includeVars": true, "keepTime": true, "tags": [ "postgres-integration" ], "title": "Integration dashboards", "type": "dashboards" } ], "panels": [ { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 0 }, "id": 15, "panels": [], "title": "PostgreSQL Overview", "type": "row" }, { "datasource": { "uid": "$datasource" }, "description": "Queries per seconds. Queries being commits or rollbacks.\n", "fieldConfig": { "defaults": { "color": { "fixedColor": "rgb(31, 120, 193)", "mode": "fixed" }, "decimals": 0, "mappings": [ { "options": { "match": "null", "result": { "text": "N/A" } }, "type": "special" } ], "thresholds": { "mode": "absolute", "steps": [ { "color": "green" } ] }, "unit": "none" }, "overrides": [] }, "gridPos": { "h": 7, "w": 4, "x": 0, "y": 1 }, "id": 11, "maxDataPoints": 100, "options": { "colorMode": "none", "graphMode": "area", "justifyMode": "auto", "orientation": "horizontal", "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "mean" ], "fields": "", "values": false }, "showPercentChange": false, "textMode": "auto", "wideLayout": true }, "pluginVersion": "12.0.2", "targets": [ { "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "dsType": "prometheus", "editorMode": "code", "expr": "sum(irate(postgresql_commits_total{postgresql_database_name=~\"$db\",k8s_cluster_name=~\"$k8s_cluster_name\", k8s_statefulset_name=~\"$k8s_statefulset_name\",host_name=~\"$host_name\"}[$__rate_interval])) + sum(irate(postgresql_rollbacks_total{postgresql_database_name=~\"$db\",k8s_cluster_name=~\"$k8s_cluster_name\", k8s_statefulset_name=~\"$k8s_statefulset_name\",host_name=~\"$host_name\"}[$__rate_interval]))", "format": "time_series", "groupBy": [ { "params": [ "$interval" ], "type": "time" }, { "params": [ "null" ], "type": "fill" } ], "intervalFactor": 2, "measurement": "postgresql", "policy": "default", "range": true, "refId": "A", "resultFormat": "time_series", "select": [ [ { "params": [ "xact_commit" ], "type": "field" }, { "params": [], "type": "mean" }, { "params": [ "10s" ], "type": "non_negative_derivative" } ] ], "step": 1800, "tags": [ { "key": "instance", "operator": "=~", "value": "/^$instance$/" } ] } ], "title": "QPS", "type": "stat" }, { "datasource": { "uid": "$datasource" }, "description": "See [pg_stat_database / `tup_fetched`](https://www.postgresql.org/docs/current/monitoring-stats.html#MONITORING-PG-STAT-DATABASE-VIEW)", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 10, "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 } ] }, "unit": "short" }, "overrides": [] }, "gridPos": { "h": 7, "w": 20, "x": 4, "y": 1 }, "id": 1, "options": { "legend": { "calcs": [], "displayMode": "table", "placement": "right", "showLegend": true }, "tooltip": { "hideZeros": false, "mode": "multi", "sort": "none" } }, "pluginVersion": "12.0.2", "targets": [ { "alias": "fetched", "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "dsType": "prometheus", "editorMode": "code", "expr": "sum(irate(postgresql_tup_fetched_total{postgresql_database_name=~\"$db\",k8s_cluster_name=~\"$k8s_cluster_name\", k8s_statefulset_name=~\"$k8s_statefulset_name\",host_name=~\"$host_name\"}[$__rate_interval]))", "format": "time_series", "groupBy": [ { "params": [ "$interval" ], "type": "time" }, { "params": [ "null" ], "type": "fill" } ], "intervalFactor": 2, "legendFormat": "fetched", "measurement": "postgresql", "policy": "default", "range": true, "refId": "fetched", "resultFormat": "time_series", "select": [ [ { "params": [ "tup_fetched" ], "type": "field" }, { "params": [], "type": "mean" }, { "params": [ "10s" ], "type": "non_negative_derivative" } ] ], "step": 120, "tags": [ { "key": "instance", "operator": "=~", "value": "/^$instance$/" } ] }, { "alias": "fetched", "datasource": { "uid": "$datasource" }, "dsType": "prometheus", "editorMode": "code", "expr": "sum(irate(postgresql_tup_returned_total{postgresql_database_name=~\"$db\",k8s_cluster_name=~\"$k8s_cluster_name\", k8s_statefulset_name=~\"$k8s_statefulset_name\",host_name=~\"$host_name\"}[$__rate_interval]))", "format": "time_series", "groupBy": [ { "params": [ "$interval" ], "type": "time" }, { "params": [ "null" ], "type": "fill" } ], "intervalFactor": 2, "legendFormat": "returned", "measurement": "postgresql", "policy": "default", "range": true, "refId": "returned", "resultFormat": "time_series", "select": [ [ { "params": [ "tup_fetched" ], "type": "field" }, { "params": [], "type": "mean" }, { "params": [ "10s" ], "type": "non_negative_derivative" } ] ], "step": 120, "tags": [ { "key": "instance", "operator": "=~", "value": "/^$instance$/" } ] }, { "alias": "fetched", "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "dsType": "prometheus", "editorMode": "code", "expr": "sum(irate(postgresql_tup_inserted_total{postgresql_database_name=~\"$db\",k8s_cluster_name=~\"$k8s_cluster_name\", k8s_statefulset_name=~\"$k8s_statefulset_name\",host_name=~\"$host_name\"}[$__rate_interval]))", "format": "time_series", "groupBy": [ { "params": [ "$interval" ], "type": "time" }, { "params": [ "null" ], "type": "fill" } ], "hide": false, "intervalFactor": 2, "legendFormat": "inserted", "measurement": "postgresql", "policy": "default", "range": true, "refId": "inserted", "resultFormat": "time_series", "select": [ [ { "params": [ "tup_fetched" ], "type": "field" }, { "params": [], "type": "mean" }, { "params": [ "10s" ], "type": "non_negative_derivative" } ] ], "step": 120, "tags": [ { "key": "instance", "operator": "=~", "value": "/^$instance$/" } ] }, { "alias": "fetched", "datasource": { "uid": "$datasource" }, "dsType": "prometheus", "editorMode": "code", "expr": "sum(irate(postgresql_tup_updated_total{dpostgresql_database_name=~\"$db\",k8s_cluster_name=~\"$k8s_cluster_name\", k8s_statefulset_name=~\"$k8s_statefulset_name\",host_name=~\"$host_name\"}[$__rate_interval]))", "format": "time_series", "groupBy": [ { "params": [ "$interval" ], "type": "time" }, { "params": [ "null" ], "type": "fill" } ], "hide": false, "intervalFactor": 2, "legendFormat": "updated", "measurement": "postgresql", "policy": "default", "range": true, "refId": "updated", "resultFormat": "time_series", "select": [ [ { "params": [ "tup_fetched" ], "type": "field" }, { "params": [], "type": "mean" }, { "params": [ "10s" ], "type": "non_negative_derivative" } ] ], "step": 120, "tags": [ { "key": "instance", "operator": "=~", "value": "/^$instance$/" } ] }, { "alias": "fetched", "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "dsType": "prometheus", "editorMode": "code", "expr": "sum(irate(postgresql_tup_deleted_total{postgresql_database_name=~\"$db\",k8s_cluster_name=~\"$k8s_cluster_name\", k8s_statefulset_name=~\"$k8s_statefulset_name\",host_name=~\"$host_name\"}[$__rate_interval]))", "format": "time_series", "groupBy": [ { "params": [ "$interval" ], "type": "time" }, { "params": [ "null" ], "type": "fill" } ], "hide": false, "intervalFactor": 2, "legendFormat": "deleted", "measurement": "postgresql", "policy": "default", "range": true, "refId": "deleted", "resultFormat": "time_series", "select": [ [ { "params": [ "tup_fetched" ], "type": "field" }, { "params": [], "type": "mean" }, { "params": [ "10s" ], "type": "non_negative_derivative" } ] ], "step": 120, "tags": [ { "key": "instance", "operator": "=~", "value": "/^$instance$/" } ] } ], "title": "Rows", "type": "timeseries" }, { "datasource": { "uid": "$datasource" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 10, "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": [], "min": 0, "thresholds": { "mode": "absolute", "steps": [ { "color": "green" }, { "color": "red", "value": 80 } ] }, "unit": "short" }, "overrides": [] }, "gridPos": { "h": 7, "w": 12, "x": 0, "y": 8 }, "id": 2, "options": { "legend": { "calcs": [], "displayMode": "table", "placement": "right", "showLegend": true }, "tooltip": { "hideZeros": false, "mode": "multi", "sort": "none" } }, "pluginVersion": "12.0.2", "targets": [ { "alias": "Buffers Allocated", "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "dsType": "prometheus", "editorMode": "code", "expr": "irate(postgresql_bgwriter_buffers_allocated_total{host_name=~\"$host_name\", k8s_cluster_name=~\"$k8s_cluster_name\", k8s_statefulset_name=~\"$k8s_statefulset_name\"}[$__rate_interval])", "format": "time_series", "groupBy": [ { "params": [ "$interval" ], "type": "time" }, { "params": [ "null" ], "type": "fill" } ], "intervalFactor": 2, "legendFormat": "buffers allocated", "measurement": "postgresql", "policy": "default", "range": true, "refId": "buffers_allocated", "resultFormat": "time_series", "select": [ [ { "params": [ "buffers_alloc" ], "type": "field" }, { "params": [], "type": "mean" }, { "params": [], "type": "difference" } ] ], "step": 240, "tags": [ { "key": "instance", "operator": "=~", "value": "/^$instance$/" } ] }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "disableTextWrap": false, "editorMode": "code", "expr": "irate(postgresql_bgwriter_buffers_writes_total{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_statefulset_name=~\"$k8s_statefulset_name\", host_name=~\"$host_name\"}[$__interval])", "fullMetaSearch": false, "hide": false, "includeNullMetadata": true, "instant": false, "interval": "", "legendFormat": "buffers write {{source}}", "range": true, "refId": "buffers_write", "useBackend": false }, { "alias": "Buffers Allocated", "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "dsType": "prometheus", "expr": "irate(pg_stat_bgwriter_buffers_backend_total{job=~\"$job\",cluster=~\"$cluster\",instance=~\"$instance\"}[$__rate_interval])", "format": "time_series", "groupBy": [ { "params": [ "$interval" ], "type": "time" }, { "params": [ "null" ], "type": "fill" } ], "intervalFactor": 2, "legendFormat": "buffers_backend", "measurement": "postgresql", "policy": "default", "refId": "buffers_backend", "resultFormat": "time_series", "select": [ [ { "params": [ "buffers_alloc" ], "type": "field" }, { "params": [], "type": "mean" }, { "params": [], "type": "difference" } ] ], "step": 240, "tags": [ { "key": "instance", "operator": "=~", "value": "/^$instance$/" } ] }, { "alias": "Buffers Allocated", "datasource": { "uid": "$datasource" }, "dsType": "prometheus", "expr": "irate(pg_stat_bgwriter_buffers_clean_total{job=~\"$job\",cluster=~\"$cluster\",instance=~\"$instance\"}[$__rate_interval])", "format": "time_series", "groupBy": [ { "params": [ "$interval" ], "type": "time" }, { "params": [ "null" ], "type": "fill" } ], "intervalFactor": 2, "legendFormat": "buffers_clean", "measurement": "postgresql", "policy": "default", "refId": "buffers_clean", "resultFormat": "time_series", "select": [ [ { "params": [ "buffers_alloc" ], "type": "field" }, { "params": [], "type": "mean" }, { "params": [], "type": "difference" } ] ], "step": 240, "tags": [ { "key": "instance", "operator": "=~", "value": "/^$instance$/" } ] }, { "alias": "Buffers Allocated", "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "dsType": "prometheus", "editorMode": "code", "expr": "irate(postgresql_bgwriter_checkpoint_count_total{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_statefulset_name=~\"$k8s_statefulset_name\", host_name=~\"$host_name\"}[$__rate_interval])", "format": "time_series", "groupBy": [ { "params": [ "$interval" ], "type": "time" }, { "params": [ "null" ], "type": "fill" } ], "intervalFactor": 2, "legendFormat": "checkpoint {{type}}", "measurement": "postgresql", "policy": "default", "range": true, "refId": "checkpoint", "resultFormat": "time_series", "select": [ [ { "params": [ "buffers_alloc" ], "type": "field" }, { "params": [], "type": "mean" }, { "params": [], "type": "difference" } ] ], "step": 240, "tags": [ { "key": "instance", "operator": "=~", "value": "/^$instance$/" } ] } ], "title": "Buffers", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "$datasource" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 10, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 2, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "min": 0, "thresholds": { "mode": "absolute", "steps": [ { "color": "green" }, { "color": "red", "value": 80 } ] }, "unit": "short" }, "overrides": [ { "matcher": { "id": "byName", "options": "deadlocks" }, "properties": [ { "id": "color", "value": { "fixedColor": "light-red", "mode": "fixed" } } ] }, { "__systemRef": "hideSeriesFrom", "matcher": { "id": "byNames", "options": { "mode": "exclude", "names": [ "deadlocks" ], "prefix": "All except:", "readOnly": true } }, "properties": [ { "id": "custom.hideFrom", "value": { "legend": false, "tooltip": false, "viz": true } } ] } ] }, "gridPos": { "h": 7, "w": 12, "x": 12, "y": 8 }, "id": 3, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "hideZeros": false, "mode": "multi", "sort": "none" } }, "pluginVersion": "12.0.2", "targets": [ { "alias": "conflicts", "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "dsType": "prometheus", "editorMode": "code", "expr": "sum(postgresql_deadlocks_total{postgresql_database_name=~\"$db\",k8s_cluster_name=~\"$k8s_cluster_name\", k8s_statefulset_name=~\"$k8s_statefulset_name\", host_name=~\"$host_name\"})", "format": "time_series", "groupBy": [ { "params": [ "$interval" ], "type": "time" }, { "params": [ "null" ], "type": "fill" } ], "intervalFactor": 2, "legendFormat": "deadlocks", "measurement": "postgresql", "policy": "default", "range": true, "refId": "deadlocks", "resultFormat": "time_series", "select": [ [ { "params": [ "conflicts" ], "type": "field" }, { "params": [], "type": "mean" }, { "params": [], "type": "difference" } ] ], "step": 240, "tags": [ { "key": "instance", "operator": "=~", "value": "/^$instance$/" } ] }, { "alias": "deadlocks", "datasource": { "uid": "$datasource" }, "dsType": "prometheus", "editorMode": "code", "expr": "sum(postgresql_conflicts_total{postgresql_database_name=~\"$db\",k8s_cluster_name=~\"$k8s_cluster_name\", k8s_statefulset_name=~\"$k8s_statefulset_name\",host_name=~\"$host_name\"})", "format": "time_series", "groupBy": [ { "params": [ "$interval" ], "type": "time" }, { "params": [ "null" ], "type": "fill" } ], "intervalFactor": 2, "legendFormat": "conflicts", "measurement": "postgresql", "policy": "default", "range": true, "refId": "conflicts-not-yet-implemented-in-otelcol", "resultFormat": "time_series", "select": [ [ { "params": [ "deadlocks" ], "type": "field" }, { "params": [], "type": "mean" }, { "params": [], "type": "difference" } ] ], "step": 240, "tags": [ { "key": "instance", "operator": "=~", "value": "/^$instance$/" } ] } ], "title": "Conflicts/Deadlocks", "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": 10, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 2, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "max": 100, "min": 0, "thresholds": { "mode": "absolute", "steps": [ { "color": "green" }, { "color": "red", "value": 80 } ] }, "unit": "percent" }, "overrides": [] }, "gridPos": { "h": 7, "w": 12, "x": 0, "y": 15 }, "id": 12, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "hideZeros": false, "mode": "multi", "sort": "none" } }, "pluginVersion": "12.0.2", "targets": [ { "datasource": { "uid": "$datasource" }, "editorMode": "code", "expr": "round(\n sum by (postgresql_database_name) (\n rate(\n postgresql_blks_hit_total{\n postgresql_database_name=~\"$db\",\n k8s_cluster_name=~\"$k8s_cluster_name\", k8s_statefulset_name=~\"$k8s_statefulset_name\",\n host_name=~\"$host_name\"\n }[$__rate_interval]\n )\n )\n /\n (\n sum by (postgresql_database_name) (\n rate(\n postgresql_blks_hit_total{\n postgresql_database_name=~\"$db\",\n k8s_cluster_name=~\"$k8s_cluster_name\", k8s_statefulset_name=~\"$k8s_statefulset_name\",\n host_name=~\"$host_name\"\n }[$__rate_interval]\n )\n )\n +\n sum by (postgresql_database_name) (\n rate(\n postgresql_blks_read_total{\n postgresql_database_name=~\"$db\",\n k8s_cluster_name=~\"$k8s_cluster_name\", k8s_statefulset_name=~\"$k8s_statefulset_name\",\n host_name=~\"$host_name\"\n }[$__rate_interval]\n )\n )\n ) * 100,\n 0.001\n)", "format": "time_series", "legendFormat": "{{postgresql_database_name}} - cache hit ratio", "range": true, "refId": "A", "step": 240 } ], "title": "Cache hit ratio", "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": 10, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 2, "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 } ] }, "unit": "short" }, "overrides": [] }, "gridPos": { "h": 7, "w": 12, "x": 12, "y": 15 }, "id": 13, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "hideZeros": false, "mode": "multi", "sort": "none" } }, "pluginVersion": "12.0.2", "targets": [ { "datasource": { "uid": "$datasource" }, "editorMode": "code", "expr": "postgresql_backends{postgresql_database_name=~\"$db\",k8s_cluster_name=~\"$k8s_cluster_name\", k8s_statefulset_name=~\"$k8s_statefulset_name\", host_name=~\"$host_name\"}", "format": "time_series", "intervalFactor": 2, "legendFormat": "{{postgresql_database_name}} - connections", "range": true, "refId": "A", "step": 240 } ], "title": "Number of active connections", "type": "timeseries" } ], "preload": false, "refresh": "30s", "schemaVersion": 41, "tags": [ "opentelemetry", "postgresql" ], "templating": { "list": [ { "current": { "text": "Prometheus", "value": "webstore-metrics" }, "includeAll": false, "label": "Data Source", "name": "datasource", "options": [], "query": "prometheus", "refresh": 1, "regex": "(?!grafanacloud-usage|grafanacloud-ml-metrics).+", "type": "datasource" }, { "allValue": ".*", "current": { "text": "All", "value": "$__all" }, "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "definition": "label_values(postgresql_table_count,k8s_cluster_name)", "description": "When deploying PostgreSQL on Kubernetes, name of the Kubernetes cluster. \nFor other deployments, select \"All\". ", "includeAll": true, "label": "K8s Cluster", "multi": true, "name": "k8s_cluster_name", "options": [], "query": { "qryType": 1, "query": "label_values(postgresql_table_count,k8s_cluster_name)", "refId": "PrometheusVariableQueryEditor-VariableQuery" }, "refresh": 2, "regex": "", "sort": 1, "type": "query" }, { "allValue": ".*", "current": { "text": "", "value": "" }, "definition": "label_values(postgresql_table_count{k8s_cluster_name=~\"$k8s_cluster_name\"},k8s_statefulset_name)", "description": "When deploying on Kubernetes, name of the `StatefulSet` of the PostgreSQL deployment (e.g. `my-pg-cluster`).\nFor other deployments, select \"All\". ", "includeAll": true, "label": "K8s Statefulset", "multi": true, "name": "k8s_statefulset_name", "options": [], "query": { "qryType": 1, "query": "label_values(postgresql_table_count{k8s_cluster_name=~\"$k8s_cluster_name\"},k8s_statefulset_name)", "refId": "PrometheusVariableQueryEditor-VariableQuery" }, "refresh": 1, "regex": "", "type": "query" }, { "allValue": ".+", "current": { "text": "All", "value": [ "$__all" ] }, "datasource": { "uid": "$datasource" }, "definition": "label_values(postgresql_table_count{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_statefulset_name=~\"$k8s_statefulset_name\"},host_name)", "description": "When deploying PostgreSQL on VMs, name on the host on which the database is deployed.\nFor other deployments, select \"All\". ", "includeAll": true, "label": "Host", "multi": true, "name": "host_name", "options": [], "query": { "qryType": 1, "query": "label_values(postgresql_table_count{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_statefulset_name=~\"$k8s_statefulset_name\"},host_name)", "refId": "PrometheusVariableQueryEditor-VariableQuery" }, "refresh": 2, "regex": "", "sort": 1, "type": "query" }, { "allValue": ".+", "current": { "text": "All", "value": "$__all" }, "datasource": { "type": "prometheus", "uid": "webstore-metrics" }, "definition": "label_values(postgresql_table_count{host_name=~\"$host_name\", postgresql_database_name!~\"template.*|postgres\", k8s_cluster_name=~\"$k8s_cluster_name\", k8s_statefulset_name=~\"$k8s_statefulset_name\"},postgresql_database_name)", "includeAll": true, "label": "Database", "name": "db", "options": [], "query": { "qryType": 1, "query": "label_values(postgresql_table_count{host_name=~\"$host_name\", postgresql_database_name!~\"template.*|postgres\", k8s_cluster_name=~\"$k8s_cluster_name\", k8s_statefulset_name=~\"$k8s_statefulset_name\"},postgresql_database_name)", "refId": "PrometheusVariableQueryEditor-VariableQuery" }, "refresh": 2, "regex": "", "type": "query" } ] }, "time": { "from": "now-30m", "to": "now" }, "timepicker": {}, "timezone": "browser", "title": "PostgreSQL", "uid": "xHhbQmdjA", "version": 5 } --- # Source: opentelemetry-demo/templates/grafana-config.yaml apiVersion: v1 kind: ConfigMap metadata: name: grafana-dashboard-spanmetrics-dashboard namespace: otel-demo labels: app.kubernetes.io/version: "2.1.3" app.kubernetes.io/part-of: opentelemetry-demo grafana_dashboard: "1" data: 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/grafana-config.yaml apiVersion: v1 kind: ConfigMap metadata: name: grafana-datasources namespace: otel-demo labels: app.kubernetes.io/version: "2.1.3" app.kubernetes.io/part-of: opentelemetry-demo grafana_datasource: "1" data: default.yaml: | # Copyright The OpenTelemetry Authors # SPDX-License-Identifier: Apache-2.0 apiVersion: 1 datasources: - name: Prometheus uid: webstore-metrics type: prometheus url: http://prometheus:9090 editable: true isDefault: true jsonData: # Align Prometheus data source time interval with the OTel SDKs' export interval (see OTEL_METRIC_EXPORT_INTERVAL) timeInterval: "60s" exemplarTraceIdDestinations: - datasourceUid: webstore-traces name: trace_id - url: http://localhost:8080/jaeger/ui/trace/$${__value.raw} name: trace_id urlDisplayLabel: View in Jaeger UI jaeger.yaml: | # Copyright The OpenTelemetry Authors # SPDX-License-Identifier: Apache-2.0 apiVersion: 1 datasources: - name: Jaeger uid: webstore-traces type: jaeger url: http://jaeger:16686/jaeger/ui editable: true isDefault: false jsonData: tracesToLogsV2: datasourceUid: webstore-logs spanStartTimeShift: "-20m" spanEndTimeShift: "20m" filterByTraceID: true filterBySpanID: true customQuery: true query: traceId:"$${__trace.traceId}" AND spanId:"$${__span.spanId}" opensearch.yaml: | # Copyright The OpenTelemetry Authors # SPDX-License-Identifier: Apache-2.0 apiVersion: 1 datasources: - name: OpenSearch uid: webstore-logs type: grafana-opensearch-datasource url: http://opensearch:9200/ access: proxy editable: true isDefault: false jsonData: database: otel-logs-* flavor: opensearch logLevelField: severity.text.keyword logMessageField: body pplEnabled: true timeField: observedTimestamp version: 3.2.0 --- # Source: opentelemetry-demo/templates/product-catalog-products.yaml apiVersion: v1 kind: ConfigMap metadata: name: product-catalog-products namespace: otel-demo labels: app.kubernetes.io/version: "2.1.3" 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: "12.1.1" name: grafana-clusterrole rules: - apiGroups: [""] # "" indicates the core API group resources: ["configmaps", "secrets"] verbs: ["get", "watch", "list"] --- # 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.135.0" app.kubernetes.io/part-of: opentelemetry-collector 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.6.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: - "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: "12.1.1" 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.135.0" app.kubernetes.io/part-of: opentelemetry-collector 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.6.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: "12.1.1" 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: "12.1.1" 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: "12.1.1" spec: type: ClusterIP ports: - name: service port: 80 protocol: TCP targetPort: grafana 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: "3.2.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: "3.2.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.135.0" app.kubernetes.io/part-of: opentelemetry-collector 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.6.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/component: ad app.kubernetes.io/name: ad app.kubernetes.io/version: "2.1.3" 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/component: cart app.kubernetes.io/name: cart app.kubernetes.io/version: "2.1.3" 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/component: checkout app.kubernetes.io/name: checkout app.kubernetes.io/version: "2.1.3" 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/component: currency app.kubernetes.io/name: currency app.kubernetes.io/version: "2.1.3" 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/component: email app.kubernetes.io/name: email app.kubernetes.io/version: "2.1.3" 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/component: flagd app.kubernetes.io/name: flagd app.kubernetes.io/version: "2.1.3" 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/component: frontend app.kubernetes.io/name: frontend app.kubernetes.io/version: "2.1.3" 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/component: frontend-proxy app.kubernetes.io/name: frontend-proxy app.kubernetes.io/version: "2.1.3" 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/component: image-provider app.kubernetes.io/name: image-provider app.kubernetes.io/version: "2.1.3" 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/component: kafka app.kubernetes.io/name: kafka app.kubernetes.io/version: "2.1.3" 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/component: load-generator app.kubernetes.io/name: load-generator app.kubernetes.io/version: "2.1.3" 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/component: payment app.kubernetes.io/name: payment app.kubernetes.io/version: "2.1.3" 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: postgresql labels: opentelemetry.io/name: postgresql app.kubernetes.io/component: postgresql app.kubernetes.io/name: postgresql app.kubernetes.io/version: "2.1.3" app.kubernetes.io/part-of: opentelemetry-demo spec: type: ClusterIP ports: - port: 5432 name: tcp-service targetPort: 5432 selector: opentelemetry.io/name: postgresql --- # Source: opentelemetry-demo/templates/component.yaml apiVersion: v1 kind: Service metadata: name: product-catalog labels: opentelemetry.io/name: product-catalog app.kubernetes.io/component: product-catalog app.kubernetes.io/name: product-catalog app.kubernetes.io/version: "2.1.3" 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/component: quote app.kubernetes.io/name: quote app.kubernetes.io/version: "2.1.3" 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/component: recommendation app.kubernetes.io/name: recommendation app.kubernetes.io/version: "2.1.3" 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/component: shipping app.kubernetes.io/name: shipping app.kubernetes.io/version: "2.1.3" 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/component: valkey-cart app.kubernetes.io/name: valkey-cart app.kubernetes.io/version: "2.1.3" 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: "12.1.1" 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: "12.1.1" annotations: checksum/config: 3aef97dc43bb7f320b3d3f00d79efff7580bf83005ec5574a0619b42268584cf 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-sc-alerts image: "quay.io/kiwigrid/k8s-sidecar:1.30.10" imagePullPolicy: IfNotPresent env: - name: METHOD value: WATCH - name: LABEL value: "grafana_alert" - name: FOLDER value: "/etc/grafana/provisioning/alerting" - name: RESOURCE value: "both" - name: REQ_USERNAME valueFrom: secretKeyRef: name: grafana key: admin-user - name: REQ_PASSWORD valueFrom: secretKeyRef: name: grafana key: admin-password - name: REQ_URL value: http://localhost:3000/api/admin/provisioning/alerting/reload - name: REQ_METHOD value: POST resources: limits: cpu: 100m memory: 100Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL seccompProfile: type: RuntimeDefault volumeMounts: - name: sc-alerts-volume mountPath: "/etc/grafana/provisioning/alerting" - name: grafana-sc-dashboard image: "quay.io/kiwigrid/k8s-sidecar:1.30.10" imagePullPolicy: IfNotPresent env: - name: METHOD value: WATCH - name: LABEL value: "grafana_dashboard" - name: FOLDER value: "/tmp/dashboards" - name: RESOURCE value: "both" - name: REQ_USERNAME valueFrom: secretKeyRef: name: grafana key: admin-user - name: REQ_PASSWORD valueFrom: secretKeyRef: name: grafana key: admin-password - name: REQ_URL value: http://localhost:3000/api/admin/provisioning/dashboards/reload - name: REQ_METHOD value: POST resources: limits: cpu: 100m memory: 100Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL seccompProfile: type: RuntimeDefault volumeMounts: - name: sc-dashboard-volume mountPath: "/tmp/dashboards" - name: grafana-sc-datasources image: "quay.io/kiwigrid/k8s-sidecar:1.30.10" imagePullPolicy: IfNotPresent env: - name: METHOD value: WATCH - name: LABEL value: "grafana_datasource" - name: FOLDER value: "/etc/grafana/provisioning/datasources" - name: RESOURCE value: "both" - name: REQ_USERNAME valueFrom: secretKeyRef: name: grafana key: admin-user - name: REQ_PASSWORD valueFrom: secretKeyRef: name: grafana key: admin-password - name: REQ_URL value: http://localhost:3000/api/admin/provisioning/datasources/reload - name: REQ_METHOD value: POST resources: limits: cpu: 100m memory: 100Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL seccompProfile: type: RuntimeDefault volumeMounts: - name: sc-datasources-volume mountPath: "/etc/grafana/provisioning/datasources" - name: grafana image: "docker.io/grafana/grafana:12.1.1" 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: sc-alerts-volume mountPath: "/etc/grafana/provisioning/alerting" - name: sc-dashboard-volume mountPath: "/tmp/dashboards" - name: sc-dashboard-provider mountPath: "/etc/grafana/provisioning/dashboards/sc-dashboardproviders.yaml" subPath: provider.yaml - name: sc-datasources-volume mountPath: "/etc/grafana/provisioning/datasources" 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 - name: GOMEMLIMIT valueFrom: resourceFieldRef: divisor: "1" resource: limits.memory 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: storage emptyDir: {} - name: sc-alerts-volume emptyDir: {} - name: sc-dashboard-volume emptyDir: {} - name: sc-dashboard-provider configMap: name: grafana-config-dashboards - name: sc-datasources-volume 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.135.0" app.kubernetes.io/part-of: opentelemetry-collector 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: b23c30f9b89a34910edbfdafc7072ff305d9e8bb93ca26ffaed9ac1a8872cefb 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 automountServiceAccountToken: true securityContext: {} containers: - name: opentelemetry-collector args: - --config=/conf/relay.yaml securityContext: {} image: "otel/opentelemetry-collector-contrib:0.135.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.6.0 app.kubernetes.io/part-of: prometheus name: prometheus namespace: otel-demo spec: strategy: type: Recreate rollingUpdate: null selector: matchLabels: app.kubernetes.io/component: server app.kubernetes.io/name: prometheus app.kubernetes.io/instance: opentelemetry-demo replicas: 1 revisionHistoryLimit: 10 template: metadata: labels: app.kubernetes.io/component: server app.kubernetes.io/name: prometheus app.kubernetes.io/instance: opentelemetry-demo app.kubernetes.io/version: v3.6.0 app.kubernetes.io/part-of: prometheus spec: enableServiceLinks: true serviceAccountName: prometheus containers: - name: prometheus-server image: "quay.io/prometheus/prometheus:v3.6.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/component: accounting app.kubernetes.io/name: accounting app.kubernetes.io/version: "2.1.3" 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/component: accounting app.kubernetes.io/name: accounting spec: serviceAccountName: opentelemetry-demo containers: - name: accounting image: 'ghcr.io/open-telemetry/demo:2.1.3-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: DB_CONNECTION_STRING value: Host=postgresql;Username=otelu;Password=otelp;Database=otel - name: OTEL_DOTNET_AUTO_TRACES_ENTITYFRAMEWORKCORE_INSTRUMENTATION_ENABLED value: "false" - name: OTEL_RESOURCE_ATTRIBUTES value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.1.3 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/component: ad app.kubernetes.io/name: ad app.kubernetes.io/version: "2.1.3" 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/component: ad app.kubernetes.io/name: ad spec: serviceAccountName: opentelemetry-demo containers: - name: ad image: 'ghcr.io/open-telemetry/demo:2.1.3-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.1.3 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/component: cart app.kubernetes.io/name: cart app.kubernetes.io/version: "2.1.3" 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/component: cart app.kubernetes.io/name: cart spec: serviceAccountName: opentelemetry-demo containers: - name: cart image: 'ghcr.io/open-telemetry/demo:2.1.3-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.1.3 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/component: checkout app.kubernetes.io/name: checkout app.kubernetes.io/version: "2.1.3" 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/component: checkout app.kubernetes.io/name: checkout spec: serviceAccountName: opentelemetry-demo containers: - name: checkout image: 'ghcr.io/open-telemetry/demo:2.1.3-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: http://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: GOMEMLIMIT value: 16MiB - name: OTEL_RESOURCE_ATTRIBUTES value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.1.3 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/component: currency app.kubernetes.io/name: currency app.kubernetes.io/version: "2.1.3" 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/component: currency app.kubernetes.io/name: currency spec: serviceAccountName: opentelemetry-demo containers: - name: currency image: 'ghcr.io/open-telemetry/demo:2.1.3-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.1.3' - name: OTEL_RESOURCE_ATTRIBUTES value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.1.3 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/component: email app.kubernetes.io/name: email app.kubernetes.io/version: "2.1.3" 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/component: email app.kubernetes.io/name: email spec: serviceAccountName: opentelemetry-demo containers: - name: email image: 'ghcr.io/open-telemetry/demo:2.1.3-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_ENDPOINT value: http://$(OTEL_COLLECTOR_NAME):4318 - name: FLAGD_HOST value: flagd - name: FLAGD_PORT value: "8013" - name: OTEL_RESOURCE_ATTRIBUTES value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.1.3 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/component: flagd app.kubernetes.io/name: flagd app.kubernetes.io/version: "2.1.3" 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/component: flagd app.kubernetes.io/name: flagd spec: serviceAccountName: opentelemetry-demo containers: - name: flagd image: 'ghcr.io/open-feature/flagd:v0.12.8' 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: GOMEMLIMIT value: 60MiB - name: OTEL_RESOURCE_ATTRIBUTES value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.1.3 resources: limits: memory: 75Mi volumeMounts: - name: config-rw mountPath: /etc/flagd - name: flagd-ui image: 'ghcr.io/open-telemetry/demo:2.1.3-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: FLAGD_UI_PORT value: "4000" - name: SECRET_KEY_BASE value: yYrECL4qbNwleYInGJYvVnSkwJuSQJ4ijPTx5tirGUXrbznFIBFVJdPl5t6O9ASw - name: PHX_HOST value: localhost - name: OTEL_RESOURCE_ATTRIBUTES value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.1.3 resources: limits: memory: 250Mi 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/component: fraud-detection app.kubernetes.io/name: fraud-detection app.kubernetes.io/version: "2.1.3" 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/component: fraud-detection app.kubernetes.io/name: fraud-detection spec: serviceAccountName: opentelemetry-demo containers: - name: fraud-detection image: 'ghcr.io/open-telemetry/demo:2.1.3-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_INSTRUMENTATION_KAFKA_EXPERIMENTAL_SPAN_ATTRIBUTES value: "true" - name: OTEL_INSTRUMENTATION_MESSAGING_EXPERIMENTAL_RECEIVE_TELEMETRY_ENABLED value: "true" - name: OTEL_RESOURCE_ATTRIBUTES value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.1.3 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/component: frontend app.kubernetes.io/name: frontend app.kubernetes.io/version: "2.1.3" 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/component: frontend app.kubernetes.io/name: frontend spec: serviceAccountName: opentelemetry-demo containers: - name: frontend image: 'ghcr.io/open-telemetry/demo:2.1.3-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: PORT value: $(FRONTEND_PORT) - 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: http://shipping:8080 - name: FLAGD_HOST value: flagd - name: FLAGD_PORT value: "8013" - name: ENV_PLATFORM value: kubernetes - 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.1.3 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/component: frontend-proxy app.kubernetes.io/name: frontend-proxy app.kubernetes.io/version: "2.1.3" 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/component: frontend-proxy app.kubernetes.io/name: frontend-proxy spec: serviceAccountName: opentelemetry-demo containers: - name: frontend-proxy image: 'ghcr.io/open-telemetry/demo:2.1.3-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: ENVOY_ADMIN_PORT value: "10000" - name: FLAGD_HOST value: flagd - name: FLAGD_PORT value: "8013" - name: FLAGD_UI_HOST value: flagd-ui - 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_UI_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.1.3 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/component: image-provider app.kubernetes.io/name: image-provider app.kubernetes.io/version: "2.1.3" 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/component: image-provider app.kubernetes.io/name: image-provider spec: serviceAccountName: opentelemetry-demo containers: - name: image-provider image: 'ghcr.io/open-telemetry/demo:2.1.3-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.1.3 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/component: kafka app.kubernetes.io/name: kafka app.kubernetes.io/version: "2.1.3" 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/component: kafka app.kubernetes.io/name: kafka spec: serviceAccountName: opentelemetry-demo containers: - name: kafka image: 'ghcr.io/open-telemetry/demo:2.1.3-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: KAFKA_LISTENERS value: PLAINTEXT://:9092,CONTROLLER://:9093 - name: KAFKA_CONTROLLER_LISTENER_NAMES value: CONTROLLER - name: KAFKA_CONTROLLER_QUORUM_VOTERS value: 1@kafka:9093 - name: OTEL_RESOURCE_ATTRIBUTES value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.1.3 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/component: load-generator app.kubernetes.io/name: load-generator app.kubernetes.io/version: "2.1.3" 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/component: load-generator app.kubernetes.io/name: load-generator spec: serviceAccountName: opentelemetry-demo containers: - name: load-generator image: 'ghcr.io/open-telemetry/demo:2.1.3-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_PORT value: "8013" - 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.1.3 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/component: payment app.kubernetes.io/name: payment app.kubernetes.io/version: "2.1.3" 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/component: payment app.kubernetes.io/name: payment spec: serviceAccountName: opentelemetry-demo containers: - name: payment image: 'ghcr.io/open-telemetry/demo:2.1.3-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.1.3 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: postgresql labels: opentelemetry.io/name: postgresql app.kubernetes.io/component: postgresql app.kubernetes.io/name: postgresql app.kubernetes.io/version: "2.1.3" app.kubernetes.io/part-of: opentelemetry-demo spec: replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: opentelemetry.io/name: postgresql template: metadata: labels: opentelemetry.io/name: postgresql app.kubernetes.io/component: postgresql app.kubernetes.io/name: postgresql spec: serviceAccountName: opentelemetry-demo containers: - name: postgresql image: 'ghcr.io/open-telemetry/demo:2.1.3-postgresql' imagePullPolicy: IfNotPresent ports: - containerPort: 5432 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: POSTGRES_USER value: root - name: POSTGRES_PASSWORD value: otel - name: POSTGRES_DB value: otel - name: OTEL_RESOURCE_ATTRIBUTES value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.1.3 resources: limits: memory: 100Mi 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/component: product-catalog app.kubernetes.io/name: product-catalog app.kubernetes.io/version: "2.1.3" 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/component: product-catalog app.kubernetes.io/name: product-catalog spec: serviceAccountName: opentelemetry-demo containers: - name: product-catalog image: 'ghcr.io/open-telemetry/demo:2.1.3-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: GOMEMLIMIT value: 16MiB - name: OTEL_RESOURCE_ATTRIBUTES value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.1.3 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/component: quote app.kubernetes.io/name: quote app.kubernetes.io/version: "2.1.3" 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/component: quote app.kubernetes.io/name: quote spec: serviceAccountName: opentelemetry-demo containers: - name: quote image: 'ghcr.io/open-telemetry/demo:2.1.3-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_PHP_INTERNAL_METRICS_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.1.3 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/component: recommendation app.kubernetes.io/name: recommendation app.kubernetes.io/version: "2.1.3" 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/component: recommendation app.kubernetes.io/name: recommendation spec: serviceAccountName: opentelemetry-demo containers: - name: recommendation image: 'ghcr.io/open-telemetry/demo:2.1.3-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.1.3 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/component: shipping app.kubernetes.io/name: shipping app.kubernetes.io/version: "2.1.3" 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/component: shipping app.kubernetes.io/name: shipping spec: serviceAccountName: opentelemetry-demo containers: - name: shipping image: 'ghcr.io/open-telemetry/demo:2.1.3-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.1.3 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/component: valkey-cart app.kubernetes.io/name: valkey-cart app.kubernetes.io/version: "2.1.3" 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/component: valkey-cart app.kubernetes.io/name: valkey-cart spec: serviceAccountName: opentelemetry-demo containers: - name: valkey-cart image: 'valkey/valkey:8.1.3-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.1.3 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: "3.2.0" app.kubernetes.io/component: opensearch annotations: majorVersion: "3" 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: "3.2.0" app.kubernetes.io/component: opensearch annotations: configchecksum: d3638c66a58383c65ae664111c0e7d56d245f2d612896ddc8e6ade4253b8c9b 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:3.2.0" imagePullPolicy: "IfNotPresent" command: - sh - -c - | #!/usr/bin/env bash cp -r /tmp/configfolder/* /tmp/config/ securityContext: capabilities: drop: - ALL runAsNonRoot: true runAsUser: 1000 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:3.2.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: "-Xms400m -Xmx400m" - 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