diff --git a/kubernetes/opentelemetry-demo.yaml b/kubernetes/opentelemetry-demo.yaml
index aeca0a63ee..18d46d3b75 100644
--- a/kubernetes/opentelemetry-demo.yaml
+++ b/kubernetes/opentelemetry-demo.yaml
@@ -18532,7 +18532,7 @@ spec:
serviceAccountName: opentelemetry-demo
containers:
- name: accounting
- image: 'mezmo/open-telemetry/demo:2.0.2-accounting'
+ image: 'mezmo/open-telemetry/demo:2.1.3-accounting'
imagePullPolicy: IfNotPresent
env:
- name: OTEL_SERVICE_NAME
@@ -18599,7 +18599,7 @@ spec:
serviceAccountName: opentelemetry-demo
containers:
- name: ad
- image: 'mezmo/open-telemetry/demo:2.0.2-ad'
+ image: 'mezmo/open-telemetry/demo:2.1.3-ad'
imagePullPolicy: IfNotPresent
ports:
@@ -18665,7 +18665,7 @@ spec:
serviceAccountName: opentelemetry-demo
containers:
- name: cart
- image: 'mezmo/open-telemetry/demo:2.0.2-cart'
+ image: 'mezmo/open-telemetry/demo:2.1.3-cart'
imagePullPolicy: IfNotPresent
ports:
@@ -18741,7 +18741,7 @@ spec:
serviceAccountName: opentelemetry-demo
containers:
- name: checkout
- image: 'mezmo/open-telemetry/demo:2.0.2-checkout'
+ image: 'mezmo/open-telemetry/demo:2.1.3-checkout'
imagePullPolicy: IfNotPresent
ports:
@@ -18828,7 +18828,7 @@ spec:
serviceAccountName: opentelemetry-demo
containers:
- name: currency
- image: 'mezmo/open-telemetry/demo:2.0.2-currency'
+ image: 'mezmo/open-telemetry/demo:2.1.3-currency'
imagePullPolicy: IfNotPresent
ports:
@@ -18890,7 +18890,13820 @@ spec:
serviceAccountName: opentelemetry-demo
containers:
- name: email
- image: 'mezmo/open-telemetry/demo:2.0.2-email'
+ image: 'mezmo/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: 'mezmo/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: 'mezmo/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: 'mezmo/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: 'mezmo/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: 'mezmo/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: 'mezmo/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: 'mezmo/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: 'mezmo/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: 'mezmo/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: 'mezmo/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: 'mezmo/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: 'mezmo/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: 'mezmo/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
+ "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: 'mezmo/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: 'mezmo/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: 'mezmo/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: 'mezmo/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: 'mezmo/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: 'mezmo/open-telemetry/demo:2.1.3-email'
imagePullPolicy: IfNotPresent
ports:
@@ -18998,7 +32811,7 @@ spec:
- name: config-rw
mountPath: /etc/flagd
- name: flagd-ui
- image: 'mezmo/open-telemetry/demo:2.0.2-flagd-ui'
+ image: 'mezmo/open-telemetry/demo:2.1.3-flagd-ui'
imagePullPolicy: IfNotPresent
ports:
@@ -19083,7 +32896,7 @@ spec:
serviceAccountName: opentelemetry-demo
containers:
- name: fraud-detection
- image: 'mezmo/open-telemetry/demo:2.0.2-fraud-detection'
+ image: 'mezmo/open-telemetry/demo:2.1.3-fraud-detection'
imagePullPolicy: IfNotPresent
env:
- name: OTEL_SERVICE_NAME
@@ -19154,7 +32967,7 @@ spec:
serviceAccountName: opentelemetry-demo
containers:
- name: frontend
- image: 'mezmo/open-telemetry/demo:2.0.2-frontend'
+ image: 'mezmo/open-telemetry/demo:2.1.3-frontend'
imagePullPolicy: IfNotPresent
ports:
@@ -19248,7 +33061,7 @@ spec:
serviceAccountName: opentelemetry-demo
containers:
- name: frontend-proxy
- image: 'mezmo/open-telemetry/demo:2.0.2-frontend-proxy'
+ image: 'mezmo/open-telemetry/demo:2.1.3-frontend-proxy'
imagePullPolicy: IfNotPresent
ports:
@@ -19346,7 +33159,7 @@ spec:
serviceAccountName: opentelemetry-demo
containers:
- name: image-provider
- image: 'mezmo/open-telemetry/demo:2.0.2-image-provider'
+ image: 'mezmo/open-telemetry/demo:2.1.3-image-provider'
imagePullPolicy: IfNotPresent
ports:
@@ -19408,7 +33221,7 @@ spec:
serviceAccountName: opentelemetry-demo
containers:
- name: kafka
- image: 'mezmo/open-telemetry/demo:2.0.2-kafka'
+ image: 'mezmo/open-telemetry/demo:2.1.3-kafka'
imagePullPolicy: IfNotPresent
ports:
@@ -19482,7 +33295,7 @@ spec:
serviceAccountName: opentelemetry-demo
containers:
- name: load-generator
- image: 'mezmo/open-telemetry/demo:2.0.2-load-generator'
+ image: 'mezmo/open-telemetry/demo:2.1.3-load-generator'
imagePullPolicy: IfNotPresent
ports:
@@ -19564,7 +33377,7 @@ spec:
serviceAccountName: opentelemetry-demo
containers:
- name: payment
- image: 'mezmo/open-telemetry/demo:2.0.2-payment'
+ image: 'mezmo/open-telemetry/demo:2.1.3-payment'
imagePullPolicy: IfNotPresent
ports:
@@ -19694,7 +33507,7 @@ spec:
serviceAccountName: opentelemetry-demo
containers:
- name: product-catalog
- image: 'mezmo/open-telemetry/demo:2.0.2-product-catalog'
+ image: 'mezmo/open-telemetry/demo:2.1.3-product-catalog'
imagePullPolicy: IfNotPresent
ports:
@@ -19767,7 +33580,7 @@ spec:
serviceAccountName: opentelemetry-demo
containers:
- name: quote
- image: 'mezmo/open-telemetry/demo:2.0.2-quote'
+ image: 'mezmo/open-telemetry/demo:2.1.3-quote'
imagePullPolicy: IfNotPresent
ports:
@@ -19835,7 +33648,7 @@ spec:
serviceAccountName: opentelemetry-demo
containers:
- name: recommendation
- image: 'mezmo/open-telemetry/demo:2.0.2-recommendation'
+ image: 'mezmo/open-telemetry/demo:2.1.3-recommendation'
imagePullPolicy: IfNotPresent
ports:
@@ -19905,7 +33718,7 @@ spec:
serviceAccountName: opentelemetry-demo
containers:
- name: shipping
- image: 'mezmo/open-telemetry/demo:2.0.2-shipping'
+ image: 'mezmo/open-telemetry/demo:2.1.3-shipping'
imagePullPolicy: IfNotPresent
ports: