diff --git a/charts/opentelemetry-demo/Chart.lock b/charts/opentelemetry-demo/Chart.lock index c88760c779..515196c0e2 100644 --- a/charts/opentelemetry-demo/Chart.lock +++ b/charts/opentelemetry-demo/Chart.lock @@ -1,7 +1,7 @@ dependencies: -- name: opentelemetry-collector +- name: opentelemetry-kube-stack repository: https://open-telemetry.github.io/opentelemetry-helm-charts - version: 0.134.0 + version: 0.11.1 - name: jaeger repository: https://jaegertracing.github.io/helm-charts version: 3.4.1 @@ -14,5 +14,5 @@ dependencies: - name: opensearch repository: https://opensearch-project.github.io/helm-charts/ version: 3.2.1 -digest: sha256:38d05310ee527b4e9073a3538ba605c8486756a404f554875f837a81530afbac -generated: "2025-10-22T12:00:27.354554+02:00" +digest: sha256:34fe2ac833ac9d0df216d7a49297644f531444dba9f279e26cdbea9e15c5fefe +generated: "2025-10-22T11:34:16.891728+02:00" diff --git a/charts/opentelemetry-demo/Chart.yaml b/charts/opentelemetry-demo/Chart.yaml index ea9b923144..29eb886a3e 100644 --- a/charts/opentelemetry-demo/Chart.yaml +++ b/charts/opentelemetry-demo/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 type: application name: opentelemetry-demo -version: 0.38.4 +version: 0.39.0 description: opentelemetry demo helm chart home: https://opentelemetry.io/ sources: @@ -15,10 +15,10 @@ maintainers: icon: https://opentelemetry.io/img/logos/opentelemetry-logo-nav.png appVersion: 2.1.3 dependencies: - - name: opentelemetry-collector - version: 0.134.0 + - name: opentelemetry-kube-stack + version: 0.11.1 repository: https://open-telemetry.github.io/opentelemetry-helm-charts - condition: opentelemetry-collector.enabled + condition: opentelemetry-kube-stack.enabled - name: jaeger version: 3.4.1 repository: https://jaegertracing.github.io/helm-charts diff --git a/charts/opentelemetry-demo/ci/collector-as-daemonset.yaml b/charts/opentelemetry-demo/ci/collector-as-daemonset.yaml deleted file mode 100644 index 7e74eac919..0000000000 --- a/charts/opentelemetry-demo/ci/collector-as-daemonset.yaml +++ /dev/null @@ -1,7 +0,0 @@ -default: - envOverrides: - - name: OTEL_COLLECTOR_NAME - value: $(OTEL_K8S_NODE_NAME) - -opentelemetry-collector: - mode: daemonset diff --git a/charts/opentelemetry-demo/ci/public-hosted-ingress-values.yaml b/charts/opentelemetry-demo/ci/public-hosted-ingress-values.yaml index beb395ce1a..1496b85098 100644 --- a/charts/opentelemetry-demo/ci/public-hosted-ingress-values.yaml +++ b/charts/opentelemetry-demo/ci/public-hosted-ingress-values.yaml @@ -14,12 +14,12 @@ components: pathType: Prefix port: 8080 -opentelemetry-collector: - ingress: - enabled: true - hosts: - - host: otel-demo-collector.example.com - paths: - - path: / - pathType: Prefix - port: 4318 +# opentelemetry-collector: +# ingress: +# enabled: true +# hosts: +# - host: otel-demo-collector.example.com +# paths: +# - path: / +# pathType: Prefix +# port: 4318 diff --git a/charts/opentelemetry-demo/examples/README.md b/charts/opentelemetry-demo/examples/README.md index 040417c32c..e1b625f9d7 100644 --- a/charts/opentelemetry-demo/examples/README.md +++ b/charts/opentelemetry-demo/examples/README.md @@ -4,9 +4,8 @@ Here is a collection of common configurations for the OpenTelemetry demo. Each - [Default configuration](default) - [Bring your own Observability](bring-your-own-observability) -- [Collector as a Daemonset](collector-as-daemonset) -- [Custom Environment Variables](custom-environment-variables) +- [Custom Resource Attributes](custom-resource-attributes) - [Kubernetes Infrastructure Monitoring](kubernetes-infra-monitoring) - [Public Hosted Ingress](public-hosted-ingress) -The manifests are rendered using the `helm template` command and the specific example folder's values.yaml. +The manifests are rendered using the `helm template` command and the specific example folder's `values.yaml`. diff --git a/charts/opentelemetry-demo/examples/bring-your-own-observability/rendered/component.yaml b/charts/opentelemetry-demo/examples/bring-your-own-observability/rendered/component.yaml index bb7719f96c..6a35e410b3 100644 --- a/charts/opentelemetry-demo/examples/bring-your-own-observability/rendered/component.yaml +++ b/charts/opentelemetry-demo/examples/bring-your-own-observability/rendered/component.yaml @@ -5,7 +5,7 @@ kind: Service metadata: name: ad labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: ad @@ -30,7 +30,7 @@ kind: Service metadata: name: cart labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: cart @@ -55,7 +55,7 @@ kind: Service metadata: name: checkout labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: checkout @@ -80,7 +80,7 @@ kind: Service metadata: name: currency labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: currency @@ -105,7 +105,7 @@ kind: Service metadata: name: email labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: email @@ -130,7 +130,7 @@ kind: Service metadata: name: flagd labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: flagd @@ -161,7 +161,7 @@ kind: Service metadata: name: frontend labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: frontend @@ -186,7 +186,7 @@ kind: Service metadata: name: frontend-proxy labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: frontend-proxy @@ -211,7 +211,7 @@ kind: Service metadata: name: image-provider labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: image-provider @@ -236,7 +236,7 @@ kind: Service metadata: name: kafka labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: kafka @@ -264,7 +264,7 @@ kind: Service metadata: name: load-generator labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: load-generator @@ -289,7 +289,7 @@ kind: Service metadata: name: payment labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: payment @@ -314,7 +314,7 @@ kind: Service metadata: name: postgresql labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: postgresql @@ -339,7 +339,7 @@ kind: Service metadata: name: product-catalog labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: product-catalog @@ -364,7 +364,7 @@ kind: Service metadata: name: quote labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: quote @@ -389,7 +389,7 @@ kind: Service metadata: name: recommendation labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: recommendation @@ -414,7 +414,7 @@ kind: Service metadata: name: shipping labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: shipping @@ -439,7 +439,7 @@ kind: Service metadata: name: valkey-cart labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: valkey-cart @@ -464,7 +464,7 @@ kind: Deployment metadata: name: accounting labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: accounting @@ -488,6 +488,9 @@ spec: app.kubernetes.io/component: accounting app.kubernetes.io/name: accounting + annotations: + resource.opentelemetry.io/service.name: accounting + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -499,21 +502,40 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: my-otel-collector.opentelemetry-ns + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - 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_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4318 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: http/protobuf - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.1.3 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 120Mi @@ -533,7 +555,7 @@ kind: Deployment metadata: name: ad labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: ad @@ -557,6 +579,9 @@ spec: app.kubernetes.io/component: ad app.kubernetes.io/name: ad + annotations: + resource.opentelemetry.io/service.name: ad + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -572,23 +597,42 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: my-otel-collector.opentelemetry-ns + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - 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_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4318 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: http/protobuf - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.1.3 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 300Mi @@ -601,7 +645,7 @@ kind: Deployment metadata: name: cart labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: cart @@ -625,6 +669,9 @@ spec: app.kubernetes.io/component: cart app.kubernetes.io/name: cart + annotations: + resource.opentelemetry.io/service.name: cart + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -640,11 +687,28 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: my-otel-collector.opentelemetry-ns + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: CART_PORT value: "8080" - name: ASPNETCORE_URLS @@ -655,10 +719,8 @@ spec: 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 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 160Mi @@ -679,7 +741,7 @@ kind: Deployment metadata: name: checkout labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: checkout @@ -703,6 +765,9 @@ spec: app.kubernetes.io/component: checkout app.kubernetes.io/name: checkout + annotations: + resource.opentelemetry.io/service.name: checkout + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -718,11 +783,28 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: my-otel-collector.opentelemetry-ns + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: CHECKOUT_PORT value: "8080" - name: CART_ADDR @@ -743,12 +825,10 @@ spec: 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 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 20Mi @@ -768,7 +848,7 @@ kind: Deployment metadata: name: currency labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: currency @@ -792,6 +872,9 @@ spec: app.kubernetes.io/component: currency app.kubernetes.io/name: currency + annotations: + resource.opentelemetry.io/service.name: currency + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -807,19 +890,34 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: my-otel-collector.opentelemetry-ns + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - 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 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 20Mi @@ -832,7 +930,7 @@ kind: Deployment metadata: name: email labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: email @@ -856,6 +954,9 @@ spec: app.kubernetes.io/component: email app.kubernetes.io/name: email + annotations: + resource.opentelemetry.io/service.name: email + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -871,23 +972,44 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: my-otel-collector.opentelemetry-ns + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: EMAIL_PORT value: "8080" - name: APP_ENV value: production - - name: OTEL_EXPORTER_OTLP_ENDPOINT - value: http://$(OTEL_COLLECTOR_NAME):4318 + - name: OTEL_EXPORTER_OTLP_TRACES_ENDPOINT + value: http://otel-demo-daemon-collector:4318/v1/traces - name: FLAGD_HOST value: flagd - name: FLAGD_PORT value: "8013" + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4318 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: http/protobuf - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.1.3 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 100Mi @@ -900,7 +1022,7 @@ kind: Deployment metadata: name: flagd labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: flagd @@ -924,6 +1046,9 @@ spec: app.kubernetes.io/component: flagd app.kubernetes.io/name: flagd + annotations: + resource.opentelemetry.io/service.name: flagd + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -950,19 +1075,36 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: my-otel-collector.opentelemetry-ns + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: FLAGD_METRICS_EXPORTER value: otel - name: FLAGD_OTEL_COLLECTOR_URI - value: $(OTEL_COLLECTOR_NAME):4317 + value: otel-demo-daemon-collector:4317 - name: GOMEMLIMIT value: 60MiB - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.1.3 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 75Mi @@ -981,23 +1123,42 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: my-otel-collector.opentelemetry-ns + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - 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_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4318 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: http/protobuf - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.1.3 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 250Mi @@ -1029,7 +1190,7 @@ kind: Deployment metadata: name: fraud-detection labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: fraud-detection @@ -1053,6 +1214,9 @@ spec: app.kubernetes.io/component: fraud-detection app.kubernetes.io/name: fraud-detection + annotations: + resource.opentelemetry.io/service.name: fraud-detection + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -1064,25 +1228,44 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: my-otel-collector.opentelemetry-ns + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - 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_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4318 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: http/protobuf - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.1.3 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 300Mi @@ -1102,7 +1285,7 @@ kind: Deployment metadata: name: frontend labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: frontend @@ -1126,6 +1309,9 @@ spec: app.kubernetes.io/component: frontend app.kubernetes.io/name: frontend + annotations: + resource.opentelemetry.io/service.name: frontend + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -1141,11 +1327,28 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: my-otel-collector.opentelemetry-ns + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: FRONTEND_PORT value: "8080" - name: PORT @@ -1172,16 +1375,12 @@ spec: 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 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 250Mi @@ -1198,7 +1397,7 @@ kind: Deployment metadata: name: frontend-proxy labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: frontend-proxy @@ -1222,6 +1421,14 @@ spec: app.kubernetes.io/component: frontend-proxy app.kubernetes.io/name: frontend-proxy + annotations: + io.opentelemetry.discovery.metrics/config: | + targets: + - endpoint: "http://`endpoint`" # FIXME why isn't `endpoint` interpolated? + io.opentelemetry.discovery.metrics/enabled: "true" + io.opentelemetry.discovery.metrics/scraper: httpcheck + resource.opentelemetry.io/service.name: frontend-proxy + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -1237,11 +1444,28 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: my-otel-collector.opentelemetry-ns + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: ENVOY_PORT value: "8080" - name: ENVOY_ADMIN_PORT @@ -1274,14 +1498,12 @@ spec: 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 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 65Mi @@ -1298,7 +1520,7 @@ kind: Deployment metadata: name: image-provider labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: image-provider @@ -1322,6 +1544,15 @@ spec: app.kubernetes.io/component: image-provider app.kubernetes.io/name: image-provider + annotations: + io.opentelemetry.discovery.metrics/config: | + endpoint: "http://`endpoint`/status" + collection_interval: "10s" + timeout: "20s" + io.opentelemetry.discovery.metrics/enabled: "true" + io.opentelemetry.discovery.metrics/scraper: nginx + resource.opentelemetry.io/service.name: image-provider + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -1337,19 +1568,34 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: my-otel-collector.opentelemetry-ns + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - 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 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 50Mi @@ -1362,7 +1608,7 @@ kind: Deployment metadata: name: kafka labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: kafka @@ -1386,6 +1632,9 @@ spec: app.kubernetes.io/component: kafka app.kubernetes.io/name: kafka + annotations: + resource.opentelemetry.io/service.name: kafka + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -1403,15 +1652,30 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: my-otel-collector.opentelemetry-ns + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - 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 @@ -1420,8 +1684,12 @@ spec: value: CONTROLLER - name: KAFKA_CONTROLLER_QUORUM_VOTERS value: 1@kafka:9093 + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4318 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: http/protobuf - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.1.3 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 600Mi @@ -1438,7 +1706,7 @@ kind: Deployment metadata: name: load-generator labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: load-generator @@ -1462,6 +1730,9 @@ spec: app.kubernetes.io/component: load-generator app.kubernetes.io/name: load-generator + annotations: + resource.opentelemetry.io/service.name: load-generator + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -1477,11 +1748,28 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: my-otel-collector.opentelemetry-ns + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: LOCUST_WEB_HOST value: 0.0.0.0 - name: LOCUST_WEB_PORT @@ -1506,10 +1794,8 @@ spec: 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 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 1500Mi @@ -1522,7 +1808,7 @@ kind: Deployment metadata: name: payment labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: payment @@ -1546,6 +1832,9 @@ spec: app.kubernetes.io/component: payment app.kubernetes.io/name: payment + annotations: + resource.opentelemetry.io/service.name: payment + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -1561,21 +1850,36 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: my-otel-collector.opentelemetry-ns + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - 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 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 120Mi @@ -1592,7 +1896,7 @@ kind: Deployment metadata: name: postgresql labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: postgresql @@ -1616,6 +1920,31 @@ spec: app.kubernetes.io/component: postgresql app.kubernetes.io/name: postgresql + annotations: + io.opentelemetry.discovery.metrics/config: | + username: root + password: otel + metrics: + postgresql.blks_hit: + enabled: true + postgresql.blks_read: + enabled: true + postgresql.tup_fetched: + enabled: true + postgresql.tup_returned: + enabled: true + postgresql.tup_inserted: + enabled: true + postgresql.tup_updated: + enabled: true + postgresql.tup_deleted: + enabled: true + postgresql.deadlocks: + enabled: true + tls: + insecure: true + io.opentelemetry.discovery.metrics/enabled: "true" + io.opentelemetry.discovery.metrics/scraper: postgresql spec: serviceAccountName: example containers: @@ -1631,11 +1960,28 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: my-otel-collector.opentelemetry-ns + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: POSTGRES_USER value: root - name: POSTGRES_PASSWORD @@ -1643,7 +1989,7 @@ spec: - name: POSTGRES_DB value: otel - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.1.3 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 100Mi @@ -1656,7 +2002,7 @@ kind: Deployment metadata: name: product-catalog labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: product-catalog @@ -1680,6 +2026,9 @@ spec: app.kubernetes.io/component: product-catalog app.kubernetes.io/name: product-catalog + annotations: + resource.opentelemetry.io/service.name: product-catalog + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -1695,11 +2044,28 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: my-otel-collector.opentelemetry-ns + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: PRODUCT_CATALOG_PORT value: "8080" - name: PRODUCT_CATALOG_RELOAD_INTERVAL @@ -1708,12 +2074,10 @@ spec: 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 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 20Mi @@ -1731,7 +2095,7 @@ kind: Deployment metadata: name: quote labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: quote @@ -1755,6 +2119,9 @@ spec: app.kubernetes.io/component: quote app.kubernetes.io/name: quote + annotations: + resource.opentelemetry.io/service.name: quote + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -1770,11 +2137,28 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: my-otel-collector.opentelemetry-ns + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: QUOTE_PORT value: "8080" - name: OTEL_PHP_AUTOLOAD_ENABLED @@ -1782,9 +2166,11 @@ spec: - name: OTEL_PHP_INTERNAL_METRICS_ENABLED value: "true" - name: OTEL_EXPORTER_OTLP_ENDPOINT - value: http://$(OTEL_COLLECTOR_NAME):4318 + value: http://otel-demo-daemon-collector:4318 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: http/protobuf - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.1.3 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 40Mi @@ -1801,7 +2187,7 @@ kind: Deployment metadata: name: recommendation labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: recommendation @@ -1825,6 +2211,9 @@ spec: app.kubernetes.io/component: recommendation app.kubernetes.io/name: recommendation + annotations: + resource.opentelemetry.io/service.name: recommendation + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -1840,11 +2229,28 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: my-otel-collector.opentelemetry-ns + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: RECOMMENDATION_PORT value: "8080" - name: PRODUCT_CATALOG_ADDR @@ -1857,10 +2263,8 @@ spec: 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 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 500Mi @@ -1873,7 +2277,7 @@ kind: Deployment metadata: name: shipping labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: shipping @@ -1897,6 +2301,9 @@ spec: app.kubernetes.io/component: shipping app.kubernetes.io/name: shipping + annotations: + resource.opentelemetry.io/service.name: shipping + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -1912,19 +2319,34 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: my-otel-collector.opentelemetry-ns + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - 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 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 20Mi @@ -1937,7 +2359,7 @@ kind: Deployment metadata: name: valkey-cart labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: valkey-cart @@ -1961,6 +2383,12 @@ spec: app.kubernetes.io/component: valkey-cart app.kubernetes.io/name: valkey-cart + annotations: + io.opentelemetry.discovery.metrics/config: | + username: valkey + collection_interval: 10s + io.opentelemetry.discovery.metrics/enabled: "true" + io.opentelemetry.discovery.metrics/scraper: redis spec: serviceAccountName: example containers: @@ -1976,13 +2404,30 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: my-otel-collector.opentelemetry-ns + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.1.3 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 20Mi diff --git a/charts/opentelemetry-demo/examples/bring-your-own-observability/rendered/flagd-config.yaml b/charts/opentelemetry-demo/examples/bring-your-own-observability/rendered/flagd-config.yaml index 1a64e1f8c3..04c58a9e4d 100644 --- a/charts/opentelemetry-demo/examples/bring-your-own-observability/rendered/flagd-config.yaml +++ b/charts/opentelemetry-demo/examples/bring-your-own-observability/rendered/flagd-config.yaml @@ -6,7 +6,7 @@ metadata: name: flagd-config namespace: default labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" diff --git a/charts/opentelemetry-demo/examples/bring-your-own-observability/rendered/opentelemetry-kube-stack/clusterrole.yaml b/charts/opentelemetry-demo/examples/bring-your-own-observability/rendered/opentelemetry-kube-stack/clusterrole.yaml new file mode 100644 index 0000000000..eabfef18d2 --- /dev/null +++ b/charts/opentelemetry-demo/examples/bring-your-own-observability/rendered/opentelemetry-kube-stack/clusterrole.yaml @@ -0,0 +1,140 @@ +--- +# Source: opentelemetry-demo/charts/opentelemetry-kube-stack/templates/clusterrole.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: example-collector +rules: +- apiGroups: [""] + resources: + - namespaces + - nodes + - nodes/proxy + - nodes/metrics + - nodes/stats + - services + - endpoints + - pods + - events + - secrets + - persistentvolumeclaims + - persistentvolumes + verbs: ["get", "list", "watch"] +- apiGroups: ["monitoring.coreos.com"] + resources: + - servicemonitors + - podmonitors + - scrapeconfigs + - probes + verbs: ["get", "list", "watch"] +- apiGroups: + - extensions + resources: + - ingresses + verbs: ["get", "list", "watch"] +- apiGroups: + - apps + resources: + - daemonsets + - deployments + - replicasets + - statefulsets + verbs: ["get", "list", "watch"] +- apiGroups: + - networking.k8s.io + resources: + - ingresses + verbs: ["get", "list", "watch"] +- apiGroups: ["discovery.k8s.io"] + resources: + - endpointslices + verbs: ["get", "list", "watch"] +- nonResourceURLs: ["/metrics", "/metrics/cadvisor"] + verbs: ["get"] + +- verbs: + - get + - list + - watch + - create + - update + - patch + - delete + apiGroups: + - coordination.k8s.io + resources: + - leases +- apiGroups: + - "" + resources: + - events + - namespaces + - namespaces/status + - nodes + - nodes/spec + - pods + - pods/status + - replicationcontrollers + - replicationcontrollers/status + - resourcequotas + - services + verbs: + - get + - list + - watch +- apiGroups: + - apps + resources: + - daemonsets + - deployments + - replicasets + - statefulsets + verbs: + - get + - list + - watch +- apiGroups: + - extensions + resources: + - daemonsets + - deployments + - replicasets + verbs: + - get + - list + - watch +- apiGroups: + - batch + resources: + - jobs + - cronjobs + verbs: + - get + - list + - watch +- apiGroups: + - autoscaling + resources: + - horizontalpodautoscalers + verbs: + - get + - list + - watch +- apiGroups: ["events.k8s.io"] + resources: ["events"] + verbs: ["watch", "list"] +--- +# Source: opentelemetry-demo/charts/opentelemetry-kube-stack/templates/clusterrole.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: otel-demo-daemon +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: example-collector +subjects: +- kind: ServiceAccount + # quirk of the Operator + name: "otel-demo-daemon-collector" + namespace: default diff --git a/charts/opentelemetry-demo/examples/bring-your-own-observability/rendered/opentelemetry-kube-stack/collector.yaml b/charts/opentelemetry-demo/examples/bring-your-own-observability/rendered/opentelemetry-kube-stack/collector.yaml new file mode 100644 index 0000000000..52225f51c8 --- /dev/null +++ b/charts/opentelemetry-demo/examples/bring-your-own-observability/rendered/opentelemetry-kube-stack/collector.yaml @@ -0,0 +1,294 @@ +--- +# Source: opentelemetry-demo/charts/opentelemetry-kube-stack/templates/collector.yaml +apiVersion: opentelemetry.io/v1beta1 +kind: OpenTelemetryCollector +metadata: + name: otel-demo-daemon + namespace: default + labels: + helm.sh/chart: opentelemetry-kube-stack-0.11.1 + app.kubernetes.io/version: "0.129.1" + app.kubernetes.io/managed-by: Helm + release: "example" +spec: + managementState: managed + mode: daemonset + config: + connectors: + spanmetrics: {} + exporters: + debug: {} + opensearch: + http: + endpoint: http://opensearch:9200 + tls: + insecure: true + logs_index: otel-logs + logs_index_time_format: yyyy-MM-dd + otlp/jaeger: + endpoint: http://jaeger-collector:4317 + tls: + insecure: true + otlphttp/bring-your-own-o11y: + endpoint: http://otlp.example.com:4318 + tls: + insecure: true + otlphttp/prometheus: + endpoint: http://prometheus:9090/api/v1/otlp + tls: + insecure: true + extensions: + health_check: + endpoint: 0.0.0.0:13133 + k8s_leader_elector/k8s_cluster: + auth_type: serviceAccount + lease_name: k8s.cluster.receiver.opentelemetry.io + lease_namespace: default + k8s_leader_elector/k8s_objects: + auth_type: serviceAccount + lease_name: k8s.objects.receiver.opentelemetry.io + lease_namespace: default + k8s_observer: + observe_ingresses: true + observe_nodes: true + observe_services: true + processors: + batch: + send_batch_max_size: 1500 + send_batch_size: 1000 + timeout: 1s + k8sattributes: + extract: + labels: + - from: pod + key: app.kubernetes.io/instance + tag_name: k8s.app.instance + - from: pod + key: app.kubernetes.io/component + tag_name: k8s.app.component + metadata: + - k8s.namespace.name + - k8s.pod.name + - k8s.pod.uid + - k8s.node.name + - k8s.pod.start_time + - k8s.deployment.name + - k8s.replicaset.name + - k8s.replicaset.uid + - k8s.daemonset.name + - k8s.daemonset.uid + - k8s.job.name + - k8s.job.uid + - k8s.container.name + - k8s.cronjob.name + - k8s.statefulset.name + - k8s.statefulset.uid + - container.image.tag + - container.image.name + - k8s.cluster.uid + - service.namespace + - service.name + - service.version + - service.instance.id + otel_annotations: true + filter: + node_from_env_var: OTEL_K8S_NODE_NAME + passthrough: false + pod_association: + - sources: + - from: resource_attribute + name: k8s.pod.uid + - sources: + - from: resource_attribute + name: k8s.pod.name + - from: resource_attribute + name: k8s.namespace.name + - from: resource_attribute + name: k8s.node.name + - sources: + - from: resource_attribute + name: k8s.pod.ip + - sources: + - from: resource_attribute + name: k8s.pod.name + - from: resource_attribute + name: k8s.namespace.name + - sources: + - from: connection + resource/hostname: + attributes: + - action: insert + from_attribute: k8s.node.name + key: host.name + resourcedetection/env: + detectors: + - env + - k8snode + override: false + timeout: 2s + transform/fix_nextjs_span_name: + error_mode: ignore + trace_statements: + - context: span + statements: + - replace_pattern(name, "\\?.*", "") + - replace_match(name, "GET /api/products/*", "GET /api/products/{productId}") + receivers: + k8s_cluster: + allocatable_types_to_report: + - cpu + - memory + - storage + auth_type: serviceAccount + collection_interval: 10s + k8s_leader_elector: k8s_leader_elector/k8s_cluster + node_conditions_to_report: + - Ready + - MemoryPressure + - DiskPressure + - NetworkUnavailable + k8sobjects: + k8s_leader_elector: k8s_leader_elector/k8s_objects + objects: + - exclude_watch_type: + - DELETED + group: events.k8s.io + mode: watch + name: events + kubeletstats: + auth_type: serviceAccount + collection_interval: 15s + endpoint: https://${env:OTEL_K8S_NODE_IP}:10250 + extra_metadata_labels: + - container.id + - k8s.volume.type + insecure_skip_verify: true + k8s_api_config: + auth_type: serviceAccount + metric_groups: + - node + - pod + - volume + - container + metrics: + container.cpu.usage: + enabled: true + k8s.node.cpu.usage: + enabled: true + k8s.node.uptime: + enabled: true + k8s.pod.cpu.usage: + enabled: true + k8s.pod.uptime: + enabled: true + otlp: + protocols: + grpc: + endpoint: 0.0.0.0:4317 + http: + cors: + allowed_origins: + - http://* + - https://* + endpoint: 0.0.0.0:4318 + receiver_creator/k8s: + discovery: + enabled: true + watch_observers: + - k8s_observer + service: + extensions: + - health_check + - k8s_observer + - k8s_leader_elector/k8s_objects + - k8s_leader_elector/k8s_cluster + pipelines: + logs: + exporters: + - otlphttp/bring-your-own-o11y + processors: + - k8sattributes + - resourcedetection/env + - resource/hostname + - batch + receivers: + - otlp + - k8sobjects + metrics: + exporters: + - otlphttp/bring-your-own-o11y + processors: + - k8sattributes + - resourcedetection/env + - resource/hostname + - batch + receivers: + - otlp + - receiver_creator/k8s + - spanmetrics + - kubeletstats + - k8s_cluster + traces: + exporters: + - otlphttp/bring-your-own-o11y + - spanmetrics + processors: + - k8sattributes + - resourcedetection/env + - resource/hostname + - transform/fix_nextjs_span_name + - batch + receivers: + - otlp + telemetry: + logs: + level: info + metrics: + readers: + - pull: + exporter: + prometheus: + host: 0.0.0.0 + port: 8888 + image: "otel/opentelemetry-collector-contrib:0.134.1" + imagePullPolicy: IfNotPresent + upgradeStrategy: automatic + terminationGracePeriodSeconds: 30 + resources: + limits: + cpu: 200m + memory: 500Mi + requests: + cpu: 100m + memory: 250Mi + securityContext: + runAsGroup: 0 + runAsUser: 0 + targetAllocator: + enabled: false + env: + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + - name: OTEL_K8S_NODE_IP + valueFrom: + fieldRef: + fieldPath: status.hostIP + - name: OTEL_K8S_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.namespace + - name: OTEL_K8S_POD_NAME + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.name + - name: OTEL_K8S_POD_IP + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: status.podIP + - name: OTEL_RESOURCE_ATTRIBUTES + value: "k8s.cluster.name=otel-demo-stack" diff --git a/charts/opentelemetry-demo/examples/bring-your-own-observability/rendered/opentelemetry-kube-stack/hooks.yaml b/charts/opentelemetry-demo/examples/bring-your-own-observability/rendered/opentelemetry-kube-stack/hooks.yaml new file mode 100644 index 0000000000..21e0f367a0 --- /dev/null +++ b/charts/opentelemetry-demo/examples/bring-your-own-observability/rendered/opentelemetry-kube-stack/hooks.yaml @@ -0,0 +1,64 @@ +--- +# Source: opentelemetry-demo/charts/opentelemetry-kube-stack/templates/hooks.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: delete-resources-sa + annotations: + "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded +--- +# Source: opentelemetry-demo/charts/opentelemetry-kube-stack/templates/hooks.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: delete-resources-role + annotations: + "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded +rules: + - apiGroups: + - opentelemetry.io + resources: + - instrumentations + - opampbridges + - opentelemetrycollectors + verbs: + - get + - list + - delete +--- +# Source: opentelemetry-demo/charts/opentelemetry-kube-stack/templates/hooks.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: delete-resources-rolebinding + annotations: + "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: delete-resources-role +subjects: + - kind: ServiceAccount + name: delete-resources-sa +--- +# Source: opentelemetry-demo/charts/opentelemetry-kube-stack/templates/hooks.yaml +apiVersion: batch/v1 +kind: Job +metadata: + name: opentelemetry-kube-stack-pre-delete-job + annotations: + "helm.sh/hook": pre-delete + "helm.sh/hook-delete-policy": hook-succeeded,hook-failed +spec: + template: + spec: + restartPolicy: Never + serviceAccountName: delete-resources-sa + containers: + - name: delete-resources + image: "rancher/kubectl:v1.34.1" + args: + - "delete" + - "instrumentations,opampbridges,opentelemetrycollectors" + - "-l" + - "helm.sh/chart=opentelemetry-kube-stack-0.11.1" diff --git a/charts/opentelemetry-demo/examples/bring-your-own-observability/rendered/product-catalog-products.yaml b/charts/opentelemetry-demo/examples/bring-your-own-observability/rendered/product-catalog-products.yaml index 047185144c..5b0c601396 100644 --- a/charts/opentelemetry-demo/examples/bring-your-own-observability/rendered/product-catalog-products.yaml +++ b/charts/opentelemetry-demo/examples/bring-your-own-observability/rendered/product-catalog-products.yaml @@ -6,7 +6,7 @@ metadata: name: product-catalog-products namespace: default labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" diff --git a/charts/opentelemetry-demo/examples/bring-your-own-observability/rendered/serviceaccount.yaml b/charts/opentelemetry-demo/examples/bring-your-own-observability/rendered/serviceaccount.yaml index 64279d14a2..b72148e91d 100644 --- a/charts/opentelemetry-demo/examples/bring-your-own-observability/rendered/serviceaccount.yaml +++ b/charts/opentelemetry-demo/examples/bring-your-own-observability/rendered/serviceaccount.yaml @@ -5,7 +5,7 @@ kind: ServiceAccount metadata: name: example labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" diff --git a/charts/opentelemetry-demo/examples/bring-your-own-observability/values.yaml b/charts/opentelemetry-demo/examples/bring-your-own-observability/values.yaml index 4d8e273d88..94f86a49b1 100644 --- a/charts/opentelemetry-demo/examples/bring-your-own-observability/values.yaml +++ b/charts/opentelemetry-demo/examples/bring-your-own-observability/values.yaml @@ -1,11 +1,24 @@ - -default: - envOverrides: - - name: OTEL_COLLECTOR_NAME - value: my-otel-collector.opentelemetry-ns - -opentelemetry-collector: - enabled: false +opentelemetry-kube-stack: + collectors: + daemon: + config: + exporters: + otlphttp/bring-your-own-o11y: + endpoint: "http://otlp.example.com:4318" + tls: + insecure: true + service: + pipelines: + traces: + exporters: + - otlphttp/bring-your-own-o11y + - spanmetrics + metrics: + exporters: + - otlphttp/bring-your-own-o11y + logs: + exporters: + - otlphttp/bring-your-own-o11y jaeger: enabled: false @@ -16,3 +29,5 @@ prometheus: grafana: enabled: false +opensearch: + enabled: false diff --git a/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/component.yaml b/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/component.yaml deleted file mode 100644 index 47da4dbab8..0000000000 --- a/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/component.yaml +++ /dev/null @@ -1,1994 +0,0 @@ ---- -# Source: opentelemetry-demo/templates/component.yaml -apiVersion: v1 -kind: Service -metadata: - name: ad - labels: - helm.sh/chart: opentelemetry-demo-0.38.4 - - 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 - app.kubernetes.io/managed-by: Helm -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: - helm.sh/chart: opentelemetry-demo-0.38.4 - - 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 - app.kubernetes.io/managed-by: Helm -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: - helm.sh/chart: opentelemetry-demo-0.38.4 - - 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 - app.kubernetes.io/managed-by: Helm -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: - helm.sh/chart: opentelemetry-demo-0.38.4 - - 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 - app.kubernetes.io/managed-by: Helm -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: - helm.sh/chart: opentelemetry-demo-0.38.4 - - 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 - app.kubernetes.io/managed-by: Helm -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: - helm.sh/chart: opentelemetry-demo-0.38.4 - - 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 - app.kubernetes.io/managed-by: Helm -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: - helm.sh/chart: opentelemetry-demo-0.38.4 - - 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 - app.kubernetes.io/managed-by: Helm -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: - helm.sh/chart: opentelemetry-demo-0.38.4 - - 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 - app.kubernetes.io/managed-by: Helm -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: - helm.sh/chart: opentelemetry-demo-0.38.4 - - 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 - app.kubernetes.io/managed-by: Helm -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: - helm.sh/chart: opentelemetry-demo-0.38.4 - - 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 - app.kubernetes.io/managed-by: Helm -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: - helm.sh/chart: opentelemetry-demo-0.38.4 - - 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 - app.kubernetes.io/managed-by: Helm -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: - helm.sh/chart: opentelemetry-demo-0.38.4 - - 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 - app.kubernetes.io/managed-by: Helm -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: - helm.sh/chart: opentelemetry-demo-0.38.4 - - 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 - app.kubernetes.io/managed-by: Helm -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: - helm.sh/chart: opentelemetry-demo-0.38.4 - - 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 - app.kubernetes.io/managed-by: Helm -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: - helm.sh/chart: opentelemetry-demo-0.38.4 - - 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 - app.kubernetes.io/managed-by: Helm -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: - helm.sh/chart: opentelemetry-demo-0.38.4 - - 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 - app.kubernetes.io/managed-by: Helm -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: - helm.sh/chart: opentelemetry-demo-0.38.4 - - 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 - app.kubernetes.io/managed-by: Helm -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: - helm.sh/chart: opentelemetry-demo-0.38.4 - - 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 - app.kubernetes.io/managed-by: Helm -spec: - type: ClusterIP - ports: - - port: 6379 - name: valkey-cart - targetPort: 6379 - selector: - - opentelemetry.io/name: valkey-cart ---- -# Source: opentelemetry-demo/templates/component.yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: accounting - labels: - helm.sh/chart: opentelemetry-demo-0.38.4 - - 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 - app.kubernetes.io/managed-by: Helm -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: example - containers: - - name: accounting - image: 'ghcr.io/open-telemetry/demo:2.1.3-accounting' - imagePullPolicy: IfNotPresent - env: - - name: OTEL_SERVICE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: $(OTEL_K8S_NODE_NAME) - - 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: - helm.sh/chart: opentelemetry-demo-0.38.4 - - 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 - app.kubernetes.io/managed-by: Helm -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: example - containers: - - name: ad - image: 'ghcr.io/open-telemetry/demo:2.1.3-ad' - imagePullPolicy: IfNotPresent - ports: - - - containerPort: 8080 - name: service - env: - - name: OTEL_SERVICE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: $(OTEL_K8S_NODE_NAME) - - 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: - helm.sh/chart: opentelemetry-demo-0.38.4 - - 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 - app.kubernetes.io/managed-by: Helm -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: example - containers: - - name: cart - image: 'ghcr.io/open-telemetry/demo:2.1.3-cart' - imagePullPolicy: IfNotPresent - ports: - - - containerPort: 8080 - name: service - env: - - name: OTEL_SERVICE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: $(OTEL_K8S_NODE_NAME) - - 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: - helm.sh/chart: opentelemetry-demo-0.38.4 - - 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 - app.kubernetes.io/managed-by: Helm -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: example - containers: - - name: checkout - image: 'ghcr.io/open-telemetry/demo:2.1.3-checkout' - imagePullPolicy: IfNotPresent - ports: - - - containerPort: 8080 - name: service - env: - - name: OTEL_SERVICE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: $(OTEL_K8S_NODE_NAME) - - 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: - helm.sh/chart: opentelemetry-demo-0.38.4 - - 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 - app.kubernetes.io/managed-by: Helm -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: example - containers: - - name: currency - image: 'ghcr.io/open-telemetry/demo:2.1.3-currency' - imagePullPolicy: IfNotPresent - ports: - - - containerPort: 8080 - name: service - env: - - name: OTEL_SERVICE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: $(OTEL_K8S_NODE_NAME) - - 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: - helm.sh/chart: opentelemetry-demo-0.38.4 - - 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 - app.kubernetes.io/managed-by: Helm -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: example - containers: - - name: email - image: 'ghcr.io/open-telemetry/demo:2.1.3-email' - imagePullPolicy: IfNotPresent - ports: - - - containerPort: 8080 - name: service - env: - - name: OTEL_SERVICE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: $(OTEL_K8S_NODE_NAME) - - 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: - helm.sh/chart: opentelemetry-demo-0.38.4 - - 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 - app.kubernetes.io/managed-by: Helm -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: example - 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_K8S_NODE_NAME) - - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE - value: cumulative - - name: FLAGD_METRICS_EXPORTER - value: otel - - name: FLAGD_OTEL_COLLECTOR_URI - value: $(OTEL_COLLECTOR_NAME):4317 - - name: GOMEMLIMIT - value: 60MiB - - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.1.3 - resources: - limits: - memory: 75Mi - volumeMounts: - - name: config-rw - mountPath: /etc/flagd - - name: flagd-ui - image: 'ghcr.io/open-telemetry/demo:2.1.3-flagd-ui' - imagePullPolicy: IfNotPresent - ports: - - - containerPort: 4000 - name: service - env: - - name: OTEL_SERVICE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: $(OTEL_K8S_NODE_NAME) - - 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: - helm.sh/chart: opentelemetry-demo-0.38.4 - - 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 - app.kubernetes.io/managed-by: Helm -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: example - containers: - - name: fraud-detection - image: 'ghcr.io/open-telemetry/demo:2.1.3-fraud-detection' - imagePullPolicy: IfNotPresent - env: - - name: OTEL_SERVICE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: $(OTEL_K8S_NODE_NAME) - - 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: - helm.sh/chart: opentelemetry-demo-0.38.4 - - 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 - app.kubernetes.io/managed-by: Helm -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: example - containers: - - name: frontend - image: 'ghcr.io/open-telemetry/demo:2.1.3-frontend' - imagePullPolicy: IfNotPresent - ports: - - - containerPort: 8080 - name: service - env: - - name: OTEL_SERVICE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: $(OTEL_K8S_NODE_NAME) - - 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: - helm.sh/chart: opentelemetry-demo-0.38.4 - - 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 - app.kubernetes.io/managed-by: Helm -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: example - containers: - - name: frontend-proxy - image: 'ghcr.io/open-telemetry/demo:2.1.3-frontend-proxy' - imagePullPolicy: IfNotPresent - ports: - - - containerPort: 8080 - name: service - env: - - name: OTEL_SERVICE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: $(OTEL_K8S_NODE_NAME) - - 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 - - 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: - helm.sh/chart: opentelemetry-demo-0.38.4 - - 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 - app.kubernetes.io/managed-by: Helm -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: example - containers: - - name: image-provider - image: 'ghcr.io/open-telemetry/demo:2.1.3-image-provider' - imagePullPolicy: IfNotPresent - ports: - - - containerPort: 8081 - name: service - env: - - name: OTEL_SERVICE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: $(OTEL_K8S_NODE_NAME) - - 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: - helm.sh/chart: opentelemetry-demo-0.38.4 - - 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 - app.kubernetes.io/managed-by: Helm -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: example - containers: - - name: kafka - image: 'ghcr.io/open-telemetry/demo:2.1.3-kafka' - imagePullPolicy: IfNotPresent - ports: - - - containerPort: 9092 - name: plaintext - - containerPort: 9093 - name: controller - env: - - name: OTEL_SERVICE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: $(OTEL_K8S_NODE_NAME) - - 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: - helm.sh/chart: opentelemetry-demo-0.38.4 - - 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 - app.kubernetes.io/managed-by: Helm -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: example - containers: - - name: load-generator - image: 'ghcr.io/open-telemetry/demo:2.1.3-load-generator' - imagePullPolicy: IfNotPresent - ports: - - - containerPort: 8089 - name: service - env: - - name: OTEL_SERVICE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: $(OTEL_K8S_NODE_NAME) - - 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: - helm.sh/chart: opentelemetry-demo-0.38.4 - - 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 - app.kubernetes.io/managed-by: Helm -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: example - containers: - - name: payment - image: 'ghcr.io/open-telemetry/demo:2.1.3-payment' - imagePullPolicy: IfNotPresent - ports: - - - containerPort: 8080 - name: service - env: - - name: OTEL_SERVICE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: $(OTEL_K8S_NODE_NAME) - - 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: - helm.sh/chart: opentelemetry-demo-0.38.4 - - 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 - app.kubernetes.io/managed-by: Helm -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: example - containers: - - name: postgresql - image: 'ghcr.io/open-telemetry/demo:2.1.3-postgresql' - imagePullPolicy: IfNotPresent - ports: - - - containerPort: 5432 - name: service - env: - - name: OTEL_SERVICE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: $(OTEL_K8S_NODE_NAME) - - 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: - helm.sh/chart: opentelemetry-demo-0.38.4 - - 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 - app.kubernetes.io/managed-by: Helm -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: example - containers: - - name: product-catalog - image: 'ghcr.io/open-telemetry/demo:2.1.3-product-catalog' - imagePullPolicy: IfNotPresent - ports: - - - containerPort: 8080 - name: service - env: - - name: OTEL_SERVICE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: $(OTEL_K8S_NODE_NAME) - - 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: - helm.sh/chart: opentelemetry-demo-0.38.4 - - 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 - app.kubernetes.io/managed-by: Helm -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: example - containers: - - name: quote - image: 'ghcr.io/open-telemetry/demo:2.1.3-quote' - imagePullPolicy: IfNotPresent - ports: - - - containerPort: 8080 - name: service - env: - - name: OTEL_SERVICE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: $(OTEL_K8S_NODE_NAME) - - 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: - helm.sh/chart: opentelemetry-demo-0.38.4 - - 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 - app.kubernetes.io/managed-by: Helm -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: example - containers: - - name: recommendation - image: 'ghcr.io/open-telemetry/demo:2.1.3-recommendation' - imagePullPolicy: IfNotPresent - ports: - - - containerPort: 8080 - name: service - env: - - name: OTEL_SERVICE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: $(OTEL_K8S_NODE_NAME) - - 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: - helm.sh/chart: opentelemetry-demo-0.38.4 - - 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 - app.kubernetes.io/managed-by: Helm -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: example - containers: - - name: shipping - image: 'ghcr.io/open-telemetry/demo:2.1.3-shipping' - imagePullPolicy: IfNotPresent - ports: - - - containerPort: 8080 - name: service - env: - - name: OTEL_SERVICE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: $(OTEL_K8S_NODE_NAME) - - 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: - helm.sh/chart: opentelemetry-demo-0.38.4 - - 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 - app.kubernetes.io/managed-by: Helm -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: example - 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_K8S_NODE_NAME) - - 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: diff --git a/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/grafana-config.yaml b/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/grafana-config.yaml deleted file mode 100644 index 54875bb9fb..0000000000 --- a/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/grafana-config.yaml +++ /dev/null @@ -1,16022 +0,0 @@ ---- -# Source: opentelemetry-demo/templates/grafana-config.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: grafana-alerting - namespace: default - labels: - helm.sh/chart: opentelemetry-demo-0.38.4 - - - app.kubernetes.io/version: "2.1.3" - app.kubernetes.io/part-of: opentelemetry-demo - app.kubernetes.io/managed-by: Helm - grafana_alert: "1" -data: - - {} ---- -# Source: opentelemetry-demo/templates/grafana-config.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: grafana-dashboard-nginx-metrics - namespace: default - labels: - helm.sh/chart: opentelemetry-demo-0.38.4 - - - app.kubernetes.io/version: "2.1.3" - app.kubernetes.io/part-of: opentelemetry-demo - app.kubernetes.io/managed-by: Helm - grafana_dashboard: "1" -data: - NGINX-metrics.json: |- - { - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": { - "type": "grafana", - "uid": "-- Grafana --" - }, - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "type": "dashboard" - } - ] - }, - "editable": true, - "fiscalYearStartMonth": 0, - "graphTooltip": 0, - "id": 6, - "links": [], - "panels": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "description": "The total number of accepted client connections", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 5, - "x": 0, - "y": 0 - }, - "id": 1, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "12.0.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "disableTextWrap": false, - "editorMode": "builder", - "expr": "nginx_connections_accepted_total", - "fullMetaSearch": false, - "includeNullMetadata": true, - "legendFormat": "__auto", - "range": true, - "refId": "A", - "useBackend": false - } - ], - "title": "Accepted connections", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "description": "The total number of handled connections", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 5, - "x": 5, - "y": 0 - }, - "id": 3, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "12.0.2", - "targets": [ - { - "disableTextWrap": false, - "editorMode": "builder", - "expr": "nginx_connections_handled_total", - "fullMetaSearch": false, - "includeNullMetadata": true, - "legendFormat": "{{__name__}}", - "range": true, - "refId": "A", - "useBackend": false - } - ], - "title": "Connections handled", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "description": "The total number of client requests", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 9, - "x": 10, - "y": 0 - }, - "id": 4, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "12.0.2", - "targets": [ - { - "disableTextWrap": false, - "editorMode": "builder", - "expr": "nginx_requests_total", - "fullMetaSearch": false, - "includeNullMetadata": true, - "legendFormat": "{{__name__}}", - "range": true, - "refId": "A", - "useBackend": false - } - ], - "title": "Total number of client requests", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "description": "The current number of nginx connections by state", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "barWidthFactor": 0.6, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 19, - "x": 0, - "y": 8 - }, - "id": 2, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "hideZeros": false, - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "12.0.2", - "targets": [ - { - "disableTextWrap": false, - "editorMode": "builder", - "expr": "nginx_connections_current", - "fullMetaSearch": false, - "includeNullMetadata": true, - "legendFormat": "{{state}}", - "range": true, - "refId": "A", - "useBackend": false - } - ], - "title": "Number of connections by state", - "type": "timeseries" - } - ], - "preload": false, - "schemaVersion": 41, - "tags": [], - "templating": { - "list": [] - }, - "time": { - "from": "now-15m", - "to": "now" - }, - "timepicker": {}, - "timezone": "browser", - "title": "[Image-Provider] NGINX Metrics", - "uid": "6fb665e0-cb81-40a5-bd21-a9485c5477b4", - "version": 1 - } ---- -# Source: opentelemetry-demo/templates/grafana-config.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: grafana-dashboard-apm-dashboard - namespace: default - labels: - helm.sh/chart: opentelemetry-demo-0.38.4 - - - app.kubernetes.io/version: "2.1.3" - app.kubernetes.io/part-of: opentelemetry-demo - app.kubernetes.io/managed-by: Helm - grafana_dashboard: "1" -data: - apm-dashboard.json: |- - { - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": { - "type": "grafana", - "uid": "-- Grafana --" - }, - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "target": { - "limit": 100, - "matchAny": false, - "tags": [], - "type": "dashboard" - }, - "type": "dashboard" - } - ] - }, - "description": "APM dashboard for monitoring OpenTelemetry-based services. \n\nInstrument your applications using OpenTelemetry SDKs and send traces, metrics, and logs to Jaeger for traces, a Prometheus-compatible database for metrics, and OpenSearch for logs. This dashboard provides a centralized view of your application's health and performance. ", - "editable": true, - "fiscalYearStartMonth": 0, - "graphTooltip": 1, - "id": 5, - "links": [], - "panels": [ - { - "description": "service.namespace=${service_namespace}, service.name=${service_name}, deployment.environment.name=${deployment_environment_name}", - "fieldConfig": { - "defaults": {}, - "overrides": [] - }, - "gridPos": { - "h": 2, - "w": 10, - "x": 0, - "y": 0 - }, - "id": 20, - "options": { - "code": { - "language": "plaintext", - "showLineNumbers": false, - "showMiniMap": false - }, - "content": "

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

\n", - "mode": "html" - }, - "pluginVersion": "12.1.0", - "title": "", - "type": "text" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${prometheus_datasource}" - }, - "description": "Shows the timestamp of the latest metrics received in the past 24h.", - "fieldConfig": { - "defaults": { - "color": { - "fixedColor": "#24292e", - "mode": "fixed" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": 0 - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 2, - "w": 3, - "x": 10, - "y": 0 - }, - "hideTimeOverride": true, - "id": 39, - "options": { - "colorMode": "background", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "/^Time$/", - "values": false - }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "12.1.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "expr": "timestamp(sum by (deployment_environment_name, service_namespace, service_name) (target_info{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}) or absent{})\n", - "interval": "60s", - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "timeFrom": "now-24h", - "title": "Latest metrics received", - "type": "stat" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 2 - }, - "id": 15, - "panels": [], - "title": "Server RED Metrics", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${prometheus_datasource}" - }, - "description": "HTTP & RPC endpoints aggregation on the `http.server.request.duration` & `rpc.server.duration` metrics.\n\nSee https://opentelemetry.io/docs/specs/semconv/http/http-metrics/#metric-httpserverrequestduration and https://opentelemetry.io/docs/specs/semconv/rpc/rpc-metrics/#metric-rpcserverduration", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "axisSoftMin": 0, - "barAlignment": 0, - "barWidthFactor": 0.6, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "log": 10, - "type": "log" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "min": 0, - "noValue": "No HTTP or RPC operation", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": 0 - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 6, - "w": 5, - "x": 0, - "y": 3 - }, - "id": 17, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "hideZeros": false, - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "12.1.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${prometheus_datasource}" - }, - "disableTextWrap": false, - "editorMode": "code", - "expr": "histogram_quantile(\n 0.95,\n sum by (le, deployment_environment_name, service_namespace, service_name) (\n rate(\n http_server_request_duration_seconds_bucket{\n deployment_environment_name=~\"$deployment_environment_name\",\n service_namespace=~\"$service_namespace\",\n service_name=\"$service_name\"\n }[$__rate_interval]\n )\n )\n)", - "fullMetaSearch": false, - "includeNullMetadata": true, - "interval": "60s", - "legendFormat": "HTTP p95", - "range": true, - "refId": "HTTP P95", - "useBackend": false - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "disableTextWrap": false, - "editorMode": "code", - "expr": "avg by (deployment_environment_name, service_namespace, service_name) (\n rate(\n http_server_request_duration_seconds_sum{\n deployment_environment_name=~\"$deployment_environment_name\",\n service_namespace=~\"$service_namespace\",\n service_name=\"$service_name\"\n }[$__rate_interval]\n )\n)\n/\navg by (deployment_environment_name, service_namespace, service_name) (\n rate(\n http_server_request_duration_seconds_count{\n deployment_environment_name=~\"$deployment_environment_name\",\n service_namespace=~\"$service_namespace\",\n service_name=\"$service_name\"\n }[$__rate_interval]\n )\n)", - "fullMetaSearch": false, - "hide": false, - "includeNullMetadata": true, - "interval": "60s", - "legendFormat": "HTTP avg", - "range": true, - "refId": "HTTP AVG", - "useBackend": false - }, - { - "datasource": { - "type": "prometheus", - "uid": "${prometheus_datasource}" - }, - "editorMode": "code", - "expr": "histogram_quantile(\n 0.95,\n sum by (le, deployment_environment_name, service_namespace, service_name) (\n rate(\n rpc_server_duration_milliseconds_bucket{\n deployment_environment_name=~\"$deployment_environment_name\",\n service_namespace=~\"$service_namespace\",\n service_name=\"$service_name\"\n }[$__rate_interval]\n ) / 1000\n )\n)", - "hide": false, - "instant": false, - "interval": "60", - "legendFormat": "RPC p95", - "range": true, - "refId": "RPC P95" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${prometheus_datasource}" - }, - "editorMode": "code", - "expr": "avg by (deployment_environment_name, service_namespace, service_name) (\n rate(\n rpc_server_duration_milliseconds_sum{\n deployment_environment_name=~\"$deployment_environment_name\",\n service_namespace=~\"$service_namespace\",\n service_name=\"$service_name\"\n }[$__rate_interval]\n ) / 1000\n)\n/\navg by (deployment_environment_name, service_namespace, service_name) (\n rate(\n rpc_server_duration_milliseconds_count{\n deployment_environment_name=~\"$deployment_environment_name\",\n service_namespace=~\"$service_namespace\",\n service_name=\"$service_name\"\n }[$__rate_interval]\n )\n)", - "hide": false, - "instant": false, - "interval": "60", - "legendFormat": "RPC avg", - "range": true, - "refId": "RPC AVG" - } - ], - "title": "Duration", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${prometheus_datasource}" - }, - "description": "HTTP and RPC endpoints aggregation on the `http.server.request.duration` and `rpc.server.duration` metrics. \n\nErrors are identified by : \n* `http.response.status_code=~\"5..\"`\n* `rpc.grpc.status_code!=\"0\"`\n\nSee https://opentelemetry.io/docs/specs/semconv/http/http-metrics/#metric-httpserverrequestduration\n", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "axisSoftMax": 100, - "axisSoftMin": 0, - "barAlignment": 0, - "barWidthFactor": 0.6, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "noValue": "No HTTP or RPC operation", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": 0 - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "percent" - }, - "overrides": [] - }, - "gridPos": { - "h": 6, - "w": 5, - "x": 5, - "y": 3 - }, - "id": 18, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "hideZeros": false, - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "12.1.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "disableTextWrap": false, - "editorMode": "code", - "expr": "(\n (sum by(deployment_environment_name, service_namespace, service_name) (rate(http_server_request_duration_seconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\", http_response_status_code=~\"5..\"}[$__rate_interval])) * 100) \n / \n sum by(deployment_environment_name, service_namespace, service_name) (rate(http_server_request_duration_seconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}[$__rate_interval]))\n)\nor\n(\n 0\n * \n sum by(deployment_environment_name, service_namespace, service_name) (rate(http_server_request_duration_seconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}[$__rate_interval]))\n)", - "fullMetaSearch": false, - "hide": false, - "includeNullMetadata": true, - "instant": false, - "interval": "60s", - "legendFormat": "HTTP 5xx errors", - "range": true, - "refId": "HTTP 5xx", - "useBackend": false - }, - { - "datasource": { - "type": "prometheus", - "uid": "${prometheus_datasource}" - }, - "editorMode": "code", - "expr": "((sum without (rpc_grpc_status_code, instance) (rate(rpc_server_duration_milliseconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\", rpc_grpc_status_code!=\"0\"}[$__rate_interval])) * 100) / sum without (rpc_grpc_status_code, instance) (rate(rpc_server_duration_milliseconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}[$__rate_interval])))\nor\n(0 * sum without (rpc_grpc_status_code, instance) (rate(rpc_server_duration_milliseconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}[$__rate_interval])))", - "hide": false, - "instant": false, - "interval": "60", - "legendFormat": "RPC errors", - "range": true, - "refId": "RPC Err" - } - ], - "title": "Error", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${prometheus_datasource}" - }, - "description": "HTTP & RPC endpoints aggregation on the `http.server.request.duration` & `rpc.server.duration` metrics.\n\nSee https://opentelemetry.io/docs/specs/semconv/http/http-metrics/#metric-httpserverrequestduration", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "axisSoftMin": 0, - "barAlignment": 0, - "barWidthFactor": 0.6, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "log": 10, - "type": "log" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "min": 0, - "noValue": "No HTTP or RPC operation", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": 0 - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "reqps" - }, - "overrides": [] - }, - "gridPos": { - "h": 6, - "w": 5, - "x": 10, - "y": 3 - }, - "id": 19, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "hideZeros": false, - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "12.1.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${prometheus_datasource}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "(sum(rate(http_server_request_duration_seconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}[$__rate_interval])) by (deployment_environment_name, service_namespace, service_name)) ", - "hide": false, - "instant": false, - "interval": "60s", - "legendFormat": "HTTP requests", - "range": true, - "refId": "HTTP RPS" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${prometheus_datasource}" - }, - "editorMode": "code", - "expr": "(sum(rate(rpc_server_duration_milliseconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}[$__rate_interval])) by (deployment_environment_name, service_namespace, service_name)) * $__interval_ms / 1000", - "hide": false, - "instant": false, - "interval": "60", - "legendFormat": "RPC requests", - "range": true, - "refId": "RPC RPS" - } - ], - "title": "Request Rate", - "type": "timeseries" - }, - { - "fieldConfig": { - "defaults": {}, - "overrides": [] - }, - "gridPos": { - "h": 6, - "w": 9, - "x": 15, - "y": 3 - }, - "id": 40, - "options": { - "alertInstanceLabelFilter": "{service_name=\"$service_name\", service_namespace=\"$service_namespace\"}", - "alertName": "", - "dashboardAlerts": false, - "groupBy": [], - "groupMode": "default", - "maxItems": 20, - "showInactiveAlerts": false, - "sortOrder": 1, - "stateFilter": { - "error": true, - "firing": true, - "noData": false, - "normal": false, - "pending": true, - "recovering": true - }, - "viewMode": "list" - }, - "pluginVersion": "12.1.0", - "title": "Alerts", - "type": "alertlist" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${prometheus_datasource}" - }, - "description": "Inbound HTTP operations of the service (aka HTTP endpoints) based on the `http.server.request.duration` metric.\n\nErrors are identified by `http.response.status_code=~\"5..\"`.\n\nSee https://opentelemetry.io/docs/specs/semconv/http/http-metrics/#metric-httpserverrequestduration", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "cellOptions": { - "type": "auto" - }, - "inspect": false - }, - "mappings": [], - "noValue": "No HTTP operation", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": 0 - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Duration (p99)" - }, - "properties": [ - { - "id": "unit", - "value": "s" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Rate" - }, - "properties": [ - { - "id": "unit", - "value": "reqps" - }, - { - "id": "custom.width", - "value": 219 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Error" - }, - "properties": [ - { - "id": "unit", - "value": "percentunit" - } - ] - } - ] - }, - "gridPos": { - "h": 6, - "w": 12, - "x": 0, - "y": 9 - }, - "id": 21, - "options": { - "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [ - { - "desc": true, - "displayName": "Operation" - } - ] - }, - "pluginVersion": "12.1.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "disableTextWrap": false, - "editorMode": "code", - "expr": "\n sum by (operation) (\n label_join(\n rate(http_server_request_duration_seconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}[$__rate_interval]),\n \"operation\",\n \" \",\n \"http_request_method\",\n \"http_route\"\n )\n )\n ", - "fullMetaSearch": false, - "includeNullMetadata": true, - "interval": "60s", - "legendFormat": "{{operation}}", - "range": true, - "refId": "RPS", - "useBackend": false - }, - { - "datasource": { - "type": "prometheus", - "uid": "${prometheus_datasource}" - }, - "editorMode": "code", - "expr": "(\n sum by (operation) (\n label_join(\n rate(http_server_request_duration_seconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\", http_response_status_code=~\"5..\"}[$__rate_interval]),\n \"operation\",\n \" \",\n \"http_request_method\",\n \"http_route\"\n )\n )\n / \n sum by (operation) (\n label_join(\n rate(http_server_request_duration_seconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}[$__rate_interval]),\n \"operation\",\n \" \",\n \"http_request_method\",\n \"http_route\"\n )\n )\n ) or (0 * \n sum by (operation) (\n label_join(\n rate(http_server_request_duration_seconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}[$__rate_interval]),\n \"operation\",\n \" \",\n \"http_request_method\",\n \"http_route\"\n )\n )\n )", - "hide": false, - "instant": false, - "interval": "60s", - "legendFormat": "{{operation}}", - "range": true, - "refId": "ERR_PCT" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "expr": "\n histogram_quantile(\n 0.99,\n sum by (le, operation) (\n label_join(\n rate(http_server_request_duration_seconds_bucket{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}[5m]),\n \"operation\",\n \" \",\n \"http_request_method\",\n \"http_route\"\n )\n )\n )\n ", - "hide": false, - "instant": false, - "interval": "60s", - "legendFormat": "{{operation}}", - "range": true, - "refId": "Duration" - } - ], - "title": "HTTP Operations", - "transformations": [ - { - "id": "timeSeriesTable", - "options": { - "Duration": { - "timeField": "Time" - }, - "ERR_PCT": { - "timeField": "Time" - }, - "RPS": { - "timeField": "Time" - } - } - }, - { - "id": "joinByField", - "options": { - "byField": "operation", - "mode": "outer" - } - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "includeByName": {}, - "indexByName": { - "Trend #Duration": 1, - "Trend #ERR_PCT": 2, - "Trend #RPS": 3, - "operation": 0 - }, - "renameByName": { - "Trend #Duration": "Duration (p99)", - "Trend #ERR_PCT": "Error", - "Trend #RPS": "Rate", - "operation": "Operation" - } - } - } - ], - "type": "table" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${prometheus_datasource}" - }, - "description": "Inbound gRPC operations of the service (aka gRPC endpoints) based on the `rpc.server.request.duration` metric.\n\nErrors are identified by `rpc.grpc.status_code != 0` which make the panel specific to the gRPC protocol.\n\nhttps://opentelemetry.io/docs/specs/semconv/rpc/rpc-metrics/#metric-rpcserverduration", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "cellOptions": { - "type": "auto" - }, - "inspect": false - }, - "mappings": [], - "noValue": "No RPC operation", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": 0 - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Duration (p99)" - }, - "properties": [ - { - "id": "unit", - "value": "ms" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Rate" - }, - "properties": [ - { - "id": "unit", - "value": "reqps" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Error" - }, - "properties": [ - { - "id": "unit", - "value": "percentunit" - } - ] - } - ] - }, - "gridPos": { - "h": 6, - "w": 12, - "x": 12, - "y": 9 - }, - "id": 27, - "options": { - "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [ - { - "desc": true, - "displayName": "Operation" - } - ] - }, - "pluginVersion": "12.1.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "disableTextWrap": false, - "editorMode": "code", - "expr": "\nsum by (operation) (\n label_join(\n rate(rpc_server_duration_milliseconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}[$__rate_interval]),\n \"operation\",\n \"/\",\n \"rpc_service\",\n \"rpc_method\"\n )\n)\n ", - "fullMetaSearch": false, - "hide": false, - "includeNullMetadata": true, - "interval": "60s", - "legendFormat": "__auto", - "range": true, - "refId": "RPS", - "useBackend": false - }, - { - "datasource": { - "type": "prometheus", - "uid": "${prometheus_datasource}" - }, - "editorMode": "code", - "expr": "(\n sum by (operation) (\n label_join(\n rate(rpc_server_duration_milliseconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\", rpc_grpc_status_code!=\"0\"}[$__rate_interval]),\n \"operation\",\n \"/\",\n \"rpc_service\",\n \"rpc_method\"\n )\n )\n / \n sum by (operation) (\n label_join(\n rate(rpc_server_duration_milliseconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}[$__rate_interval]),\n \"operation\",\n \"/\",\n \"rpc_service\",\n \"rpc_method\"\n )\n )\n ) or (0 * \n sum by (operation) (\n label_join(\n rate(rpc_server_duration_milliseconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}[$__rate_interval]),\n \"operation\",\n \"/\",\n \"rpc_service\",\n \"rpc_method\"\n )\n )\n )\n ", - "hide": false, - "instant": false, - "interval": "60s", - "legendFormat": "__auto", - "range": true, - "refId": "ERR_PCT" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "expr": "\n histogram_quantile(\n 0.99,\n sum by (le, operation) (\n label_join(\n rate(rpc_server_duration_milliseconds_bucket{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}[5m]),\n \"operation\",\n \"/\",\n \"rpc_service\",\n \"rpc_method\"\n )\n )\n )\n ", - "hide": false, - "instant": false, - "interval": "60s", - "legendFormat": "{{operation}}", - "range": true, - "refId": "Duration" - } - ], - "title": "gRPC Operations", - "transformations": [ - { - "id": "timeSeriesTable", - "options": { - "Duration": { - "timeField": "Time" - }, - "ERR_PCT": { - "timeField": "Time" - }, - "RPS": { - "timeField": "Time" - } - } - }, - { - "id": "joinByField", - "options": { - "byField": "operation", - "mode": "outer" - } - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "includeByName": {}, - "indexByName": { - "Trend #Duration": 1, - "Trend #ERR_PCT": 2, - "Trend #RPS": 3, - "operation": 0 - }, - "renameByName": { - "Trend #Duration": "Duration (p99)", - "Trend #ERR_PCT": "Error", - "Trend #RPS": "Rate", - "operation": "Operation" - } - } - } - ], - "type": "table" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 15 - }, - "id": 28, - "panels": [], - "title": "Outbound Services and Databases", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${prometheus_datasource}" - }, - "description": "HTTP calls made by the service based on the `http.client.request.duration` metric.\n\nCalls broken done by remote `server.address` and by `http.request.method`.\n\nSee https://opentelemetry.io/docs/specs/semconv/http/http-metrics/#metric-httpclientrequestduration", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "cellOptions": { - "type": "auto" - }, - "inspect": false - }, - "mappings": [], - "noValue": "No HTTP call", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": 0 - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Duration (P99)" - }, - "properties": [ - { - "id": "unit", - "value": "s" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Rate" - }, - "properties": [ - { - "id": "unit", - "value": "reqps" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Error" - }, - "properties": [ - { - "id": "unit", - "value": "percentunit" - } - ] - } - ] - }, - "gridPos": { - "h": 5, - "w": 12, - "x": 0, - "y": 16 - }, - "id": 23, - "options": { - "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true - }, - "pluginVersion": "12.1.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "disableTextWrap": false, - "editorMode": "code", - "expr": "\n sum by (outbound_service) (\n label_join(\n rate(http_client_request_duration_seconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}[$__rate_interval]),\n \"outbound_service\",\n \" \",\n \"server_address\",\n \"http_request_method\",\n \"url_template\"\n )\n )\n ", - "fullMetaSearch": false, - "includeNullMetadata": true, - "interval": "60s", - "legendFormat": "{{server_address}} {{http_request_method}} {{url_template}}", - "range": true, - "refId": "RPS", - "useBackend": false - }, - { - "datasource": { - "type": "prometheus", - "uid": "${prometheus_datasource}" - }, - "editorMode": "code", - "expr": "(\n sum by (outbound_service) (\n label_join(\n rate(http_client_request_duration_seconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\", http_response_status_code=~\"5..\"}[$__rate_interval]),\n \"outbound_service\",\n \" \",\n \"server_address\",\n \"http_request_method\",\n \"url_template\"\n )\n )\n / \n sum by (outbound_service) (\n label_join(\n rate(http_client_request_duration_seconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}[$__rate_interval]),\n \"outbound_service\",\n \" \",\n \"server_address\",\n \"http_request_method\",\n \"url_template\"\n )\n )\n ) or (0 * \n sum by (outbound_service) (\n label_join(\n rate(http_client_request_duration_seconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}[$__rate_interval]),\n \"outbound_service\",\n \" \",\n \"server_address\",\n \"http_request_method\",\n \"url_template\"\n )\n )\n )", - "hide": false, - "instant": false, - "interval": "60s", - "legendFormat": "{{server_address}} {{http_request_method}} {{url_template}}", - "range": true, - "refId": "ERR_PCT" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "expr": "\nhistogram_quantile(\n 0.99,\n sum by (le, outbound_service) (\n label_join(\n rate(http_client_request_duration_seconds_bucket{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}[5m]),\n \"outbound_service\",\n \" \",\n \"server_address\",\n \"http_request_method\",\n \"url_template\"\n )\n )\n)", - "hide": false, - "instant": false, - "interval": "60s", - "legendFormat": "{{server_address}} {{http_request_method}} {{url_template}}", - "range": true, - "refId": "DURATION" - } - ], - "title": "Outbound HTTP Services", - "transformations": [ - { - "id": "timeSeriesTable", - "options": { - "Duration": { - "timeField": "Time" - }, - "ERR_PCT": { - "timeField": "Time" - }, - "RPS": { - "timeField": "Time" - } - } - }, - { - "id": "joinByField", - "options": { - "byField": "outbound_service", - "mode": "outer" - } - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "includeByName": {}, - "indexByName": { - "Trend #DURATION": 1, - "Trend #ERR_PCT": 2, - "Trend #RPS": 3, - "outbound_service": 0 - }, - "renameByName": { - "Trend #DURATION": "Duration (P99)", - "Trend #Duration": "Duration (p99)", - "Trend #ERR_PCT": "Error", - "Trend #RPS": "Rate", - "operation": "Operation", - "outbound_service": "Service" - } - } - } - ], - "type": "table" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${prometheus_datasource}" - }, - "description": "DB calls made by the service based on the `db.client.operation.duration` metric.\n\nCalls broken down by `server.address` and `db.namespace`.\n\nSee https://opentelemetry.io/docs/specs/semconv/database/database-metrics/#metric-dbclientoperationduration\n", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "cellOptions": { - "type": "auto" - }, - "inspect": false - }, - "mappings": [], - "noValue": "No database call", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": 0 - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Duration (P99)" - }, - "properties": [ - { - "id": "unit", - "value": "s" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Rate" - }, - "properties": [ - { - "id": "unit", - "value": "reqps" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Error" - }, - "properties": [ - { - "id": "unit", - "value": "percentunit" - } - ] - } - ] - }, - "gridPos": { - "h": 5, - "w": 12, - "x": 12, - "y": 16 - }, - "id": 24, - "options": { - "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "12.1.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "disableTextWrap": false, - "editorMode": "code", - "expr": "sum by (database) (\n label_join(\n rate(db_client_operation_duration_seconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}[$__rate_interval]),\n \"database\",\n \"/\",\n \"server_address\",\n \"db_namespace\"\n )\n)\n ", - "fullMetaSearch": false, - "hide": false, - "includeNullMetadata": true, - "interval": "60s", - "legendFormat": "{{server_address}} {{db_namespace}}", - "range": true, - "refId": "RPS", - "useBackend": false - }, - { - "datasource": { - "type": "prometheus", - "uid": "${prometheus_datasource}" - }, - "editorMode": "code", - "expr": "(\n sum by (database) (\n label_join(\n rate(db_client_operation_duration_seconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\", http_response_status_code=~\"5..\"}[$__rate_interval]),\n \"database\",\n \"/\",\n \"server_address\",\n \"db_namespace\"\n )\n )\n / \n sum by (database) (\n label_join(\n rate(db_client_operation_duration_seconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}[$__rate_interval]),\n \"database\",\n \"/\",\n \"server_address\",\n \"db_namespace\"\n )\n )\n ) or (0 * \n sum by (database) (\n label_join(\n rate(db_client_operation_duration_seconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}[$__rate_interval]),\n \"database\",\n \"/\",\n \"server_address\",\n \"db_namespace\"\n )\n )\n )", - "hide": false, - "instant": false, - "interval": "60s", - "legendFormat": "{{server_address}} {{db_namespace}}", - "range": true, - "refId": "ERR_PCT" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "expr": "\nhistogram_quantile(\n 0.99,\n sum by (le, database) (\n label_join(\n rate(db_client_operation_duration_seconds_bucket{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}[5m]),\n \"database\",\n \"/\",\n \"server_address\",\n \"db_namespace\"\n )\n )\n)", - "hide": false, - "instant": false, - "interval": "60s", - "legendFormat": "{{server_address}} {{db_namespace}}", - "range": true, - "refId": "DURATION" - } - ], - "title": "Outbound Databases", - "transformations": [ - { - "id": "timeSeriesTable", - "options": { - "DURATION": { - "timeField": "Time" - }, - "Duration": { - "timeField": "Time" - }, - "ERR_PCT": { - "timeField": "Time" - }, - "RPS": { - "timeField": "Time" - } - } - }, - { - "id": "joinByField", - "options": { - "byField": "database", - "mode": "outer" - } - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "includeByName": {}, - "indexByName": { - "Trend #DURATION": 1, - "Trend #ERR_PCT": 2, - "Trend #RPS": 3, - "database": 0 - }, - "renameByName": { - "Trend #DURATION": "Duration (P99)", - "Trend #Duration": "Duration (p99)", - "Trend #ERR_PCT": "Error", - "Trend #RPS": "Rate", - "database": "Database", - "database_operation": "Database Operation", - "operation": "Operation", - "outbound_service": "Service" - } - } - } - ], - "type": "table" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${prometheus_datasource}" - }, - "description": "gRPC calls made by the service based on the `rpc.client.request.duration` metric.\n\nSpecific to gRPC due to the usage of the `grpc.status.code` attribute to identify errors.\n\nCalls broken down by `server.address`, `rpc.service`, and `rpc.method`.\n\nSee https://opentelemetry.io/docs/specs/semconv/rpc/rpc-metrics/#rpc-client\n\n", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "cellOptions": { - "type": "auto" - }, - "inspect": false - }, - "mappings": [], - "noValue": "No RPC call", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": 0 - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Duration (P99)" - }, - "properties": [ - { - "id": "unit", - "value": "ms" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Rate" - }, - "properties": [ - { - "id": "unit", - "value": "reqps" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Error" - }, - "properties": [ - { - "id": "unit", - "value": "percentunit" - } - ] - } - ] - }, - "gridPos": { - "h": 5, - "w": 12, - "x": 0, - "y": 21 - }, - "id": 32, - "options": { - "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true - }, - "pluginVersion": "12.1.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "disableTextWrap": false, - "editorMode": "code", - "expr": "\n sum by (outbound_service) (\n label_join(\n rate(rpc_client_duration_milliseconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}[$__rate_interval]),\n \"outbound_service\",\n \"/\",\n \"server_address\",\n \"rpc_service\",\n \"rpc_method\"\n )\n )\n ", - "fullMetaSearch": false, - "hide": false, - "includeNullMetadata": true, - "interval": "60s", - "legendFormat": "__auto", - "range": true, - "refId": "RPS", - "useBackend": false - }, - { - "datasource": { - "type": "prometheus", - "uid": "${prometheus_datasource}" - }, - "editorMode": "code", - "expr": "(\n sum by (outbound_service) (\n label_join(\n rate(rpc_client_duration_milliseconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\", http_response_status_code=~\"5..\"}[$__rate_interval]),\n \"outbound_service\",\n \"/\",\n \"server_address\",\n \"rpc_service\",\n \"rpc_method\"\n )\n )\n / \n sum by (outbound_service) (\n label_join(\n rate(rpc_client_duration_milliseconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}[$__rate_interval]),\n \"outbound_service\",\n \"/\",\n \"server_address\",\n \"rpc_service\",\n \"rpc_method\"\n )\n )\n ) or (0 * \n sum by (outbound_service) (\n label_join(\n rate(rpc_client_duration_milliseconds_count{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}[$__rate_interval]),\n \"outbound_service\",\n \"/\",\n \"server_address\",\n \"rpc_service\",\n \"rpc_method\"\n )\n )\n )", - "hide": false, - "instant": false, - "interval": "60s", - "legendFormat": "__auto", - "range": true, - "refId": "ERR_PCT" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "expr": "\nhistogram_quantile(\n 0.99,\n sum by (le, outbound_service) (\n label_join(\n rate(rpc_client_duration_milliseconds_bucket{deployment_environment_name=~\"$deployment_environment_name\", service_namespace=~\"$service_namespace\", service_name=\"$service_name\"}[5m]),\n \"outbound_service\",\n \"/\",\n \"server_address\",\n \"rpc_service\",\n \"rpc_method\"\n )\n )\n)", - "hide": false, - "instant": false, - "interval": "60s", - "legendFormat": "__auto", - "range": true, - "refId": "DURATION" - } - ], - "title": "Outbound gRPC Services", - "transformations": [ - { - "id": "timeSeriesTable", - "options": { - "Duration": { - "timeField": "Time" - }, - "ERR_PCT": { - "timeField": "Time" - }, - "RPS": { - "timeField": "Time" - } - } - }, - { - "id": "joinByField", - "options": { - "byField": "outbound_service", - "mode": "outer" - } - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "includeByName": {}, - "indexByName": { - "Trend #DURATION": 1, - "Trend #ERR_PCT": 2, - "Trend #RPS": 3, - "outbound_service": 0 - }, - "renameByName": { - "Trend #DURATION": "Duration (P99)", - "Trend #Duration": "Duration (p99)", - "Trend #ERR_PCT": "Error", - "Trend #RPS": "Rate", - "operation": "Operation", - "outbound_service": "Service Method" - } - } - } - ], - "type": "table" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 26 - }, - "id": 42, - "panels": [], - "title": "Service instances", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "cellOptions": { - "type": "auto" - }, - "inspect": false - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": 0 - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Host CPU" - }, - "properties": [ - { - "id": "unit", - "value": "percentunit" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Host Memory" - }, - "properties": [ - { - "id": "unit", - "value": "percentunit" - } - ] - } - ] - }, - "gridPos": { - "h": 4, - "w": 24, - "x": 0, - "y": 27 - }, - "id": 41, - "options": { - "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "frameIndex": 1, - "showHeader": true - }, - "pluginVersion": "12.1.0", - "targets": [ - { - "editorMode": "code", - "expr": "sum by (service_instance_id_host_name) (\n label_join(\n (\n sum by (service_instance_id, host_name) (\n rate(system_cpu_time_seconds_total{job=\"\", state!=\"idle\"}[$__rate_interval])\n )\n * on(host_name) group_left(service_instance_id)\n target_info{service_name=\"${service_name}\"}\n ),\n \"service_instance_id_host_name\",\n \" / \",\n \"service_instance_id\",\n \"host_name\"\n )\n)", - "hide": false, - "legendFormat": "__auto", - "range": true, - "refId": "cpu_time_percentage" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "expr": "sum by (service_instance_id_host_name) (\n label_join(\n (\n (\n sum by (service_instance_id, host_name) (\n system_memory_usage_bytes{job=\"\", state!=\"free\"}\n )\n /\n sum by (service_instance_id, host_name) (\n system_memory_usage_bytes{job=\"\"}\n )\n )\n * on(host_name) group_left(service_instance_id) (\n target_info{service_name=\"${service_name}\"}\n )\n ),\n \"service_instance_id_host_name\",\n \" / \",\n \"service_instance_id\",\n \"host_name\"\n )\n)", - "hide": false, - "instant": false, - "legendFormat": "__auto", - "range": true, - "refId": "memory_usage_pct" - } - ], - "title": "Service instance / host", - "transformations": [ - { - "id": "timeSeriesTable", - "options": { - "A": { - "timeField": "Time" - }, - "cpu_time_percentage": { - "timeField": "Time" - }, - "memory_usage_pct": { - "timeField": "Time" - } - } - }, - { - "id": "joinByField", - "options": { - "byField": "service_instance_id_host_name", - "mode": "outer" - } - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "includeByName": {}, - "indexByName": {}, - "renameByName": { - "Trend #cpu_time_percentage": "Host CPU", - "Trend #memory_usage_pct": "Host Memory", - "service_instance_id_host_name": "Instance / Host" - } - } - } - ], - "type": "table" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 31 - }, - "id": 25, - "panels": [], - "title": "Logs", - "type": "row" - }, - { - "datasource": { - "type": "grafana-opensearch-datasource", - "uid": "${opensearch_datasource}" - }, - "description": "Logs of the service, filtered by `service.name`, `service.namespace`, and `deployment.environment.name`.\n\nTo explore the logs, open the menu clicking on the icon `⋮` of this panel and click on `Explore`.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "cellOptions": { - "type": "auto" - }, - "inspect": false - }, - "mappings": [], - "noValue": "No application logs", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": 0 - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "@timestamp" - }, - "properties": [ - { - "id": "custom.width", - "value": 226 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "severity.text" - }, - "properties": [ - { - "id": "custom.width", - "value": 136 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "instrumentationScope.name" - }, - "properties": [ - { - "id": "custom.width", - "value": 246 - } - ] - } - ] - }, - "gridPos": { - "h": 15, - "w": 24, - "x": 0, - "y": 32 - }, - "id": 26, - "options": { - "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "12.1.0", - "targets": [ - { - "alias": "", - "bucketAggs": [ - { - "field": "observedTimestamp", - "id": "2", - "settings": { - "interval": "auto" - }, - "type": "date_histogram" - } - ], - "datasource": { - "type": "grafana-opensearch-datasource", - "uid": "${opensearch_datasource}" - }, - "format": "table", - "hide": false, - "luceneQueryType": "Logs", - "metrics": [ - { - "id": "1", - "type": "logs" - } - ], - "query": "search source=otel-logs-* | where resource.service.name=\"$service_name\" and resource.service.namespace=\"$service_namespace\" | fields @timestamp, severity.text, body, instrumentationScope.name\n", - "queryType": "PPL", - "refId": "B", - "timeField": "observedTimestamp" - } - ], - "title": "", - "transformations": [ - { - "id": "formatTime", - "options": { - "outputFormat": "YYYY-MM-DD HH:MM:ss.sss", - "timeField": "@timestamp", - "timezone": "browser", - "useTimezone": true - } - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "includeByName": {}, - "indexByName": { - "@timestamp": 0, - "body": 3, - "instrumentationScope.name": 2, - "severity.text": 1 - }, - "renameByName": { - "@timestamp": "Time", - "body": "Message", - "instrumentationScope.name": "Logger", - "severity.text": "Severity" - } - } - } - ], - "type": "table" - }, - { - "collapsed": true, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 47 - }, - "id": 29, - "panels": [ - { - "datasource": { - "type": "jaeger", - "uid": "${jaeger_datasource}" - }, - "description": "Traces containing a span emitted by the service", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "cellOptions": { - "type": "auto" - }, - "inspect": false - }, - "mappings": [], - "noValue": "No traces", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": 0 - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Trace Service" - }, - "properties": [ - { - "id": "custom.hidden", - "value": true - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Span ID" - }, - "properties": [ - { - "id": "custom.hidden", - "value": false - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "deployment.environment.name" - }, - "properties": [ - { - "id": "custom.hidden", - "value": true - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "service.name" - }, - "properties": [ - { - "id": "custom.hidden", - "value": true - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "service.namespace" - }, - "properties": [ - { - "id": "custom.hidden", - "value": true - } - ] - } - ] - }, - "gridPos": { - "h": 8, - "w": 15, - "x": 0, - "y": 58 - }, - "id": 30, - "options": { - "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "frameIndex": 0, - "showHeader": true - }, - "pluginVersion": "12.1.0", - "targets": [ - { - "datasource": { - "type": "jaeger", - "uid": "${jaeger_datasource}" - }, - "queryType": "search", - "refId": "A", - "service": "$service_name", - "tags": "service.namespace=\"$service_namespace\"" - } - ], - "title": "", - "type": "table" - } - ], - "title": "Traces", - "type": "row" - } - ], - "preload": false, - "refresh": "30s", - "schemaVersion": 41, - "tags": [], - "templating": { - "list": [ - { - "allowCustomValue": false, - "current": { - "text": "Prometheus", - "value": "webstore-metrics" - }, - "description": "OpenTelemetry metrics. \nSend metrics using the Prometheus OTLP endpoint activating `keep_identifying_resource_attributes` and resource attribute promotion (aka `promote_resource_attributes`) including `service.name`, service.namespace`, `service.instance.id`, and `deployment.environment.name`", - "label": "Metrics", - "name": "prometheus_datasource", - "options": [], - "query": "prometheus", - "refresh": 1, - "regex": "", - "type": "datasource" - }, - { - "allowCustomValue": false, - "current": { - "text": "Jaeger", - "value": "webstore-traces" - }, - "description": "OpenTelemetry traces", - "label": "Traces", - "name": "jaeger_datasource", - "options": [], - "query": "jaeger", - "refresh": 1, - "regex": "", - "type": "datasource" - }, - { - "allowCustomValue": false, - "current": { - "text": "OpenSearch", - "value": "webstore-logs" - }, - "description": "OpenTelemetry logs.", - "label": "Logs", - "name": "opensearch_datasource", - "options": [], - "query": "grafana-opensearch-datasource", - "refresh": 1, - "regex": "", - "type": "datasource" - }, - { - "current": { - "text": ".*", - "value": ".*" - }, - "description": "Waiting to implement support of the optional value of `deployment.environment.name` in the OpenSearch and Jager panels, hide variable.", - "hide": 2, - "label": "Environment", - "name": "deployment_environment_name", - "query": ".*", - "skipUrlSync": true, - "type": "constant" - }, - { - "allValue": ".*", - "allowCustomValue": false, - "current": { - "text": "opentelemetry-demo", - "value": "opentelemetry-demo" - }, - "datasource": { - "type": "prometheus", - "uid": "${prometheus_datasource}" - }, - "definition": "label_values(target_info{deployment_environment_name=~\"$deployment_environment_name\"},service_namespace)", - "description": "Service namespace.\nResource attribute `service.namespace` via `target_info`", - "includeAll": false, - "label": "Namespace", - "name": "service_namespace", - "options": [], - "query": { - "qryType": 1, - "query": "label_values(target_info{deployment_environment_name=~\"$deployment_environment_name\"},service_namespace)", - "refId": "PrometheusVariableQueryEditor-VariableQuery" - }, - "refresh": 1, - "regex": "", - "sort": 1, - "type": "query" - }, - { - "current": { - "text": "checkout", - "value": "checkout" - }, - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "definition": "label_values(target_info{service_namespace=~\"$service_namespace\", deployment_environment_name=~\"$deployment_environment_name\"},service_name)", - "description": "Service name.\nResource attribute `service.name` via `target_info`.", - "label": "Name", - "name": "service_name", - "options": [], - "query": { - "qryType": 1, - "query": "label_values(target_info{service_namespace=~\"$service_namespace\", deployment_environment_name=~\"$deployment_environment_name\"},service_name)", - "refId": "PrometheusVariableQueryEditor-VariableQuery" - }, - "refresh": 2, - "regex": "", - "sort": 1, - "type": "query" - } - ] - }, - "time": { - "from": "now-30m", - "to": "now" - }, - "timepicker": {}, - "timezone": "", - "title": "APM Dashboard (Jaeger, Prometheus, OpenSearch)", - "uid": "febljk0a32qyoa", - "version": 1 - } ---- -# Source: opentelemetry-demo/templates/grafana-config.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: grafana-dashboard-demo-dashboard - namespace: default - labels: - helm.sh/chart: opentelemetry-demo-0.38.4 - - - app.kubernetes.io/version: "2.1.3" - app.kubernetes.io/part-of: opentelemetry-demo - app.kubernetes.io/managed-by: Helm - grafana_dashboard: "1" -data: - demo-dashboard.json: |- - { - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": { - "type": "grafana", - "uid": "-- Grafana --" - }, - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "target": { - "limit": 100, - "matchAny": false, - "tags": [], - "type": "dashboard" - }, - "type": "dashboard" - } - ] - }, - "editable": true, - "fiscalYearStartMonth": 0, - "graphTooltip": 1, - "id": 2, - "links": [], - "panels": [ - { - "fieldConfig": { - "defaults": {}, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 24, - "x": 0, - "y": 0 - }, - "id": 21, - "options": { - "code": { - "language": "plaintext", - "showLineNumbers": false, - "showMiniMap": false - }, - "content": "This dashboard shows RED metrics for the selected service, as generated by the spanmetrics connector in the OpenTelemetry Collector.\nIf the selected service emits logs, the logs will also be displayed.\nCustom metrics generated by some services are also displayed. \n
\nChart panels may require 5 minutes after the Demo is started before rendering data.", - "mode": "html" - }, - "pluginVersion": "11.5.2", - "title": "", - "type": "text" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 3 - }, - "id": 14, - "panels": [], - "title": "Spanmetrics (RED metrics)", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "barWidthFactor": 0.6, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "reqps" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 8, - "x": 0, - "y": 4 - }, - "id": 12, - "interval": "2m", - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "hideZeros": false, - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "11.5.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "expr": "sum by (span_name) (rate(traces_span_metrics_duration_milliseconds_count{service_name=\"${service}\"}[$__rate_interval]))", - "legendFormat": "{{ span_name }}", - "range": true, - "refId": "A" - } - ], - "title": "Requests Rate by Span Name", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "barWidthFactor": 0.6, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 8, - "x": 8, - "y": 4 - }, - "id": 10, - "interval": "2m", - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "hideZeros": false, - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "11.5.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "expr": "sum by (span_name) (rate(traces_span_metrics_calls_total{status_code=\"STATUS_CODE_ERROR\", service_name=\"${service}\"}[$__rate_interval]))", - "interval": "", - "legendFormat": "{{ span_name }}", - "range": true, - "refId": "A" - } - ], - "title": "Error Rate by Span Name", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "barWidthFactor": 0.6, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "dtdurationms" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 8, - "x": 16, - "y": 4 - }, - "id": 2, - "interval": "2m", - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "hideZeros": false, - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "11.5.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "exemplar": false, - "expr": "histogram_quantile(0.50, sum(rate(traces_span_metrics_duration_milliseconds_bucket{service_name=\"${service}\"}[$__rate_interval])) by (le, span_name))", - "legendFormat": "{{span_name}}", - "range": true, - "refId": "A" - } - ], - "title": "Average Duration by Span Name", - "type": "timeseries" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 12 - }, - "id": 19, - "panels": [], - "title": "Application Log Records", - "type": "row" - }, - { - "datasource": { - "type": "grafana-opensearch-datasource", - "uid": "webstore-logs" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "left", - "cellOptions": { - "type": "auto" - }, - "inspect": false - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "count()" - }, - "properties": [ - { - "id": "custom.width", - "value": 90 - } - ] - } - ] - }, - "gridPos": { - "h": 8, - "w": 4, - "x": 0, - "y": 13 - }, - "id": 20, - "options": { - "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true - }, - "pluginVersion": "11.5.2", - "targets": [ - { - "alias": "", - "bucketAggs": [ - { - "field": "severity.text.keyword", - "id": "3", - "settings": { - "min_doc_count": "1", - "order": "desc", - "orderBy": "_count", - "size": "0" - }, - "type": "terms" - } - ], - "datasource": { - "type": "grafana-opensearch-datasource", - "uid": "webstore-logs" - }, - "format": "table", - "metrics": [ - { - "id": "1", - "type": "count" - } - ], - "query": "search source=otel-logs-*\n| where resource.service.name=\"${service}\"\n| stats count() by severity.text", - "queryType": "PPL", - "refId": "A", - "timeField": "observedTimestamp" - } - ], - "title": "Log Records by Severity", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": {}, - "includeByName": {}, - "indexByName": {}, - "renameByName": { - "Count": "", - "severity.text.keyword": "Severity" - } - } - } - ], - "type": "table" - }, - { - "datasource": { - "type": "grafana-opensearch-datasource", - "uid": "webstore-logs" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "cellOptions": { - "type": "auto", - "wrapText": false - }, - "filterable": true, - "inspect": true - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "observedTimestamp" - }, - "properties": [] - }, - { - "matcher": { - "id": "byName", - "options": "body" - }, - "properties": [ - { - "id": "custom.width", - "value": 386 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "severity.text" - }, - "properties": [ - { - "id": "custom.width", - "value": 127 - } - ] - } - ] - }, - "gridPos": { - "h": 8, - "w": 20, - "x": 4, - "y": 13 - }, - "id": 17, - "options": { - "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "11.5.2", - "targets": [ - { - "alias": "", - "bucketAggs": [], - "datasource": { - "type": "grafana-opensearch-datasource", - "uid": "webstore-logs" - }, - "format": "table", - "hide": false, - "metrics": [ - { - "id": "1", - "settings": { - "order": "desc", - "size": "100", - "useTimeRange": true - }, - "type": "raw_data" - } - ], - "query": "search source=otel-logs-*\n| where resource.service.name=\"${service}\"\n| sort - observedTimestamp \n| head 100", - "queryType": "PPL", - "refId": "A", - "timeField": "observedTimestamp" - } - ], - "title": "Log Records (100 recent entries)", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "@timestamp": true - }, - "includeByName": {}, - "indexByName": { - "@timestamp": 1, - "attributes.data_stream.dataset": 4, - "attributes.data_stream.namespace": 5, - "attributes.data_stream.type": 6, - "attributes.productId": 7, - "attributes.quantity": 8, - "attributes.userId": 9, - "body": 3, - "instrumentationScope.name": 10, - "observedTimestamp": 0, - "resource.container.id": 11, - "resource.docker.cli.cobra.command_path": 12, - "resource.host.name": 13, - "resource.service.name": 14, - "resource.telemetry.sdk.language": 15, - "resource.telemetry.sdk.name": 16, - "resource.telemetry.sdk.version": 17, - "severity.number": 18, - "severity.text": 2, - "spanId": 19, - "traceId": 20 - }, - "renameByName": {} - } - } - ], - "type": "table" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 21 - }, - "id": 18, - "panels": [], - "title": "Application Metrics", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "barWidthFactor": 0.6, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "percent" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 22 - }, - "id": 6, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "hideZeros": false, - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "11.5.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "expr": "rate(process_runtime_cpython_cpu_time_seconds_total{type=~\"system\"}[$__rate_interval])*100", - "hide": false, - "interval": "2m", - "legendFormat": "{{job}} ({{type}})", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "expr": "rate(process_runtime_cpython_cpu_time_seconds_total{type=~\"user\"}[$__rate_interval])*100", - "hide": false, - "interval": "2m", - "legendFormat": "{{job}} ({{type}})", - "range": true, - "refId": "B" - } - ], - "title": "Python services (CPU%)", - "transformations": [ - { - "id": "renameByRegex", - "options": { - "regex": "opentelemetry-demo/(.*)", - "renamePattern": "$1" - } - } - ], - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "barWidthFactor": 0.6, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "bytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 22 - }, - "id": 8, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "hideZeros": false, - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "11.5.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "expr": "process_runtime_cpython_memory_bytes{type=\"rss\"}", - "legendFormat": "{{job}}", - "range": true, - "refId": "A" - } - ], - "title": "Python services (Memory)", - "transformations": [ - { - "id": "renameByRegex", - "options": { - "regex": "opentelemetry-demo/(.*)", - "renamePattern": "$1" - } - } - ], - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "barWidthFactor": 0.6, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 30 - }, - "id": 4, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "hideZeros": false, - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "11.5.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "expr": "rate(app_recommendations_counter_total{recommendation_type=\"catalog\"}[$__rate_interval])", - "interval": "2m", - "legendFormat": "recommendations", - "range": true, - "refId": "A" - } - ], - "title": "Recommendations Rate", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "barWidthFactor": 0.6, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 30 - }, - "id": 16, - "interval": "2m", - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "hideZeros": false, - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "11.5.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "expr": "rate(otel_trace_span_processor_spans{job=\"quote\"}[2m])*120", - "interval": "2m", - "legendFormat": "{{state}}", - "range": true, - "refId": "A" - } - ], - "title": "Quote Service batch span processor", - "type": "timeseries" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 38 - }, - "id": 23, - "panels": [], - "title": "Service Dependency", - "type": "row" - }, - { - "datasource": { - "type": "jaeger", - "uid": "webstore-traces" - }, - "fieldConfig": { - "defaults": {}, - "overrides": [] - }, - "gridPos": { - "h": 18, - "w": 24, - "x": 0, - "y": 39 - }, - "id": 22, - "options": { - "edges": { - "mainStatUnit": "requests" - }, - "nodes": { - "arcs": [], - "mainStatUnit": "" - }, - "zoomMode": "cooperative" - }, - "pluginVersion": "11.5.2", - "targets": [ - { - "datasource": { - "type": "jaeger", - "uid": "webstore-traces" - }, - "queryType": "dependencyGraph", - "refId": "A" - } - ], - "title": "Service Dependency", - "type": "nodeGraph" - } - ], - "preload": false, - "refresh": "", - "schemaVersion": 40, - "tags": [], - "templating": { - "list": [ - { - "current": { - "text": "frontend", - "value": "frontend" - }, - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "definition": "traces_span_metrics_duration_milliseconds_bucket", - "includeAll": false, - "label": "Service", - "name": "service", - "options": [], - "query": { - "query": "traces_span_metrics_duration_milliseconds_bucket", - "refId": "PrometheusVariableQueryEditor-VariableQuery" - }, - "refresh": 1, - "regex": "/.*service.name=\\\"([^\\\"]+)\\\".*/", - "sort": 1, - "type": "query" - } - ] - }, - "time": { - "from": "now-15m", - "to": "now" - }, - "timepicker": {}, - "timezone": "", - "title": "Demo Dashboard", - "uid": "W2gX2zHVk", - "version": 2, - "weekStart": "" - } ---- -# Source: opentelemetry-demo/templates/grafana-config.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: grafana-dashboard-exemplars-dashboard - namespace: default - labels: - helm.sh/chart: opentelemetry-demo-0.38.4 - - - app.kubernetes.io/version: "2.1.3" - app.kubernetes.io/part-of: opentelemetry-demo - app.kubernetes.io/managed-by: Helm - grafana_dashboard: "1" -data: - exemplars-dashboard.json: |- - { - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": { - "type": "grafana", - "uid": "-- Grafana --" - }, - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "type": "dashboard" - } - ] - }, - "editable": true, - "fiscalYearStartMonth": 0, - "graphTooltip": 0, - "id": 3, - "links": [], - "panels": [ - { - "fieldConfig": { - "defaults": {}, - "overrides": [] - }, - "gridPos": { - "h": 2, - "w": 24, - "x": 0, - "y": 0 - }, - "id": 8, - "options": { - "code": { - "language": "plaintext", - "showLineNumbers": false, - "showMiniMap": false - }, - "content": "This dashboard shows the use of metric exemplars.\nExemplars can be used to look up a trace in Jaeger.\nOnly the most recent exemplars may still be available in Jaeger.\n
\nChart panels may require 5 minutes after the Demo is started before rendering data.", - "mode": "html" - }, - "pluginVersion": "11.6.1", - "title": "", - "type": "text" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 2 - }, - "id": 4, - "panels": [], - "title": "GetCart Exemplars", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "fieldConfig": { - "defaults": { - "custom": { - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "scaleDistribution": { - "type": "linear" - } - } - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 24, - "x": 0, - "y": 3 - }, - "id": 2, - "interval": "2m", - "options": { - "calculate": false, - "cellGap": 1, - "color": { - "exponent": 0.5, - "fill": "dark-orange", - "mode": "scheme", - "reverse": false, - "scale": "exponential", - "scheme": "Spectral", - "steps": 64 - }, - "exemplars": { - "color": "rgba(255,0,255,0.7)" - }, - "filterValues": { - "le": 1e-09 - }, - "legend": { - "show": true - }, - "rowsFrame": { - "layout": "auto" - }, - "tooltip": { - "mode": "single", - "showColorScale": false, - "yHistogram": false - }, - "yAxis": { - "axisPlacement": "left", - "reverse": false - } - }, - "pluginVersion": "11.6.1", - "targets": [ - { - "disableTextWrap": false, - "editorMode": "builder", - "exemplar": true, - "expr": "sum by(le) (rate(app_cart_get_cart_latency_seconds_bucket[$__rate_interval]))", - "format": "heatmap", - "fullMetaSearch": false, - "includeNullMetadata": false, - "instant": true, - "legendFormat": "{{le}}", - "range": true, - "refId": "A", - "useBackend": false - } - ], - "title": "GetCart Latency Heatmap with Exemplars", - "type": "heatmap" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "barWidthFactor": 0.6, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 24, - "x": 0, - "y": 12 - }, - "id": 5, - "interval": "2m", - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "hideZeros": false, - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "11.6.1", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "disableTextWrap": false, - "editorMode": "builder", - "exemplar": true, - "expr": "histogram_quantile(0.95, sum by(le) (rate(app_cart_get_cart_latency_seconds_bucket[$__rate_interval])))", - "fullMetaSearch": false, - "includeNullMetadata": false, - "legendFormat": "p95 GetCart", - "range": true, - "refId": "A", - "useBackend": false - } - ], - "title": "95th Pct Cart GetCart Latency with Exemplars", - "type": "timeseries" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 22 - }, - "id": 3, - "panels": [], - "title": "AddItem Exemplars", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "fieldConfig": { - "defaults": { - "custom": { - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "scaleDistribution": { - "type": "linear" - } - } - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 24, - "x": 0, - "y": 23 - }, - "id": 6, - "interval": "2m", - "options": { - "calculate": false, - "cellGap": 1, - "color": { - "exponent": 0.5, - "fill": "dark-orange", - "mode": "scheme", - "reverse": false, - "scale": "exponential", - "scheme": "Spectral", - "steps": 64 - }, - "exemplars": { - "color": "rgba(255,0,255,0.7)" - }, - "filterValues": { - "le": 1e-09 - }, - "legend": { - "show": true - }, - "rowsFrame": { - "layout": "auto" - }, - "tooltip": { - "mode": "single", - "showColorScale": false, - "yHistogram": false - }, - "yAxis": { - "axisPlacement": "left", - "reverse": false - } - }, - "pluginVersion": "11.6.1", - "targets": [ - { - "disableTextWrap": false, - "editorMode": "builder", - "exemplar": true, - "expr": "sum by(le) (rate(app_cart_add_item_latency_seconds_bucket[$__rate_interval]))", - "format": "heatmap", - "fullMetaSearch": false, - "includeNullMetadata": false, - "instant": true, - "legendFormat": "{{le}}", - "range": true, - "refId": "A", - "useBackend": false - } - ], - "title": "AddItem Latency Heatmap with Exemplars", - "type": "heatmap" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "barWidthFactor": 0.6, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 24, - "x": 0, - "y": 32 - }, - "id": 1, - "interval": "2m", - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "hideZeros": false, - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "11.6.1", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "disableTextWrap": false, - "editorMode": "builder", - "exemplar": true, - "expr": "histogram_quantile(0.95, sum by(le) (rate(app_cart_add_item_latency_seconds_bucket[$__rate_interval])))", - "fullMetaSearch": false, - "includeNullMetadata": false, - "legendFormat": "p95 AddItem", - "range": true, - "refId": "A", - "useBackend": false - } - ], - "title": "95th Pct Cart AddItem Latency with Exemplars", - "type": "timeseries" - } - ], - "preload": false, - "schemaVersion": 41, - "tags": [], - "templating": { - "list": [] - }, - "time": { - "from": "now-15m", - "to": "now" - }, - "timepicker": {}, - "timezone": "browser", - "title": "Cart Service Exemplars", - "uid": "ce6sd46kfkglca", - "version": 1 - } ---- -# Source: opentelemetry-demo/templates/grafana-config.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: grafana-dashboard-linux-dashboard - namespace: default - labels: - helm.sh/chart: opentelemetry-demo-0.38.4 - - - app.kubernetes.io/version: "2.1.3" - app.kubernetes.io/part-of: opentelemetry-demo - app.kubernetes.io/managed-by: Helm - grafana_dashboard: "1" -data: - linux-dashboard.json: |- - { - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": { - "type": "datasource", - "uid": "grafana" - }, - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "target": { - "limit": 100, - "matchAny": false, - "tags": [], - "type": "dashboard" - }, - "type": "dashboard" - } - ] - }, - "description": "OpenTelemetry Collector hostmetrics", - "editable": true, - "fiscalYearStartMonth": 0, - "graphTooltip": 1, - "id": 4, - "links": [], - "panels": [ - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 0 - }, - "id": 267, - "panels": [], - "title": "overview【 $host_name】", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "description": "Busy state of all CPU cores together\n\nhttps://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/receiver/hostmetricsreceiver/internal/scraper/cpuscraper/documentation.md", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "decimals": 1, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "rgba(50, 172, 45, 0.97)" - }, - { - "color": "rgba(237, 129, 40, 0.89)", - "value": 85 - }, - { - "color": "rgba(245, 54, 54, 0.9)", - "value": 95 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 4, - "w": 3, - "x": 0, - "y": 1 - }, - "id": 20, - "options": { - "minVizHeight": 75, - "minVizWidth": 75, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "sizing": "auto" - }, - "pluginVersion": "12.0.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "editorMode": "code", - "expr": "sum(system_cpu_utilization_ratio{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\", job=\"\", state!=\"idle\"})", - "hide": false, - "instant": false, - "legendFormat": "__auto", - "range": true, - "refId": "B" - } - ], - "title": "CPU Busy", - "type": "gauge" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "description": "Non available RAM memory\n\nhttps://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/receiver/hostmetricsreceiver/internal/scraper/memoryscraper/documentation.md", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "decimals": 1, - "mappings": [], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "rgba(50, 172, 45, 0.97)" - }, - { - "color": "rgba(237, 129, 40, 0.89)", - "value": 80 - }, - { - "color": "rgba(245, 54, 54, 0.9)", - "value": 90 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 4, - "w": 3, - "x": 3, - "y": 1 - }, - "id": 16, - "options": { - "minVizHeight": 75, - "minVizWidth": 75, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "sizing": "auto" - }, - "pluginVersion": "12.0.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "disableTextWrap": false, - "editorMode": "code", - "exemplar": false, - "expr": "system_memory_utilization_ratio{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"$node_name\", host_name=~\"$host_name\", job=\"\", state=\"used\"}", - "format": "time_series", - "fullMetaSearch": false, - "hide": false, - "includeNullMetadata": true, - "instant": false, - "intervalFactor": 1, - "range": true, - "refId": "A", - "step": 240, - "useBackend": false - } - ], - "title": "RAM Used", - "type": "gauge" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "description": "Used FS\n\nhttps://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/hostmetricsreceiver#collecting-host-metrics-from-inside-a-container-linux-only", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "decimals": 1, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "rgba(50, 172, 45, 0.97)" - }, - { - "color": "rgba(237, 129, 40, 0.89)", - "value": 80 - }, - { - "color": "rgba(245, 54, 54, 0.9)", - "value": 90 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 4, - "w": 3, - "x": 6, - "y": 1 - }, - "id": 154, - "options": { - "minVizHeight": 75, - "minVizWidth": 75, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "sizing": "auto" - }, - "pluginVersion": "12.0.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "editorMode": "code", - "expr": "1 \n-\nsum(system_filesystem_usage_bytes{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\", state=\"free\"}) \n/ \nsum(system_filesystem_usage_bytes{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\"})", - "hide": false, - "instant": false, - "legendFormat": "__auto", - "range": true, - "refId": "C" - } - ], - "title": "FS Used", - "type": "gauge" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "description": "Busy state of all CPU cores together (5 min average)\n\nhttps://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/receiver/hostmetricsreceiver/internal/scraper/loadscraper/documentation.md", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "decimals": 1, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "rgba(50, 172, 45, 0.97)" - }, - { - "color": "rgba(237, 129, 40, 0.89)", - "value": 85 - }, - { - "color": "rgba(245, 54, 54, 0.9)", - "value": 95 - } - ] - }, - "unit": "percent" - }, - "overrides": [] - }, - "gridPos": { - "h": 4, - "w": 3, - "x": 9, - "y": 1 - }, - "id": 155, - "options": { - "minVizHeight": 75, - "minVizWidth": 75, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "sizing": "auto" - }, - "pluginVersion": "12.0.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "system_cpu_load_average_5m{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\"} ", - "format": "time_series", - "hide": false, - "instant": true, - "intervalFactor": 1, - "legendFormat": "__auto", - "range": false, - "refId": "sysload_5m", - "step": 240 - } - ], - "title": "Sys Load (5m avg)", - "type": "gauge" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "description": "Busy state of all CPU cores together (15 min average)\n\nhttps://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/receiver/hostmetricsreceiver/internal/scraper/loadscraper/documentation.md", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "decimals": 1, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "rgba(50, 172, 45, 0.97)" - }, - { - "color": "rgba(237, 129, 40, 0.89)", - "value": 85 - }, - { - "color": "rgba(245, 54, 54, 0.9)", - "value": 95 - } - ] - }, - "unit": "percent" - }, - "overrides": [] - }, - "gridPos": { - "h": 4, - "w": 3, - "x": 12, - "y": 1 - }, - "id": 19, - "options": { - "minVizHeight": 75, - "minVizWidth": 75, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "sizing": "auto" - }, - "pluginVersion": "12.0.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "system_cpu_load_average_15m{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\"} ", - "hide": false, - "instant": true, - "intervalFactor": 1, - "range": false, - "refId": "sysload_15m", - "step": 240 - } - ], - "title": "Sys Load (15m avg)", - "type": "gauge" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "description": "Used Swap\n\nhttps://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/receiver/hostmetricsreceiver/internal/scraper/pagingscraper/documentation.md", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "decimals": 1, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "rgba(50, 172, 45, 0.97)" - }, - { - "color": "rgba(237, 129, 40, 0.89)", - "value": 10 - }, - { - "color": "rgba(245, 54, 54, 0.9)", - "value": 25 - } - ] - }, - "unit": "percent" - }, - "overrides": [] - }, - "gridPos": { - "h": 4, - "w": 3, - "x": 15, - "y": 1 - }, - "id": 21, - "options": { - "minVizHeight": 75, - "minVizWidth": 75, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "sizing": "auto" - }, - "pluginVersion": "12.0.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum(system_paging_usage_bytes { k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\", state=\"used\" })\n/\nsum(system_paging_usage_bytes { k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\"})", - "instant": true, - "intervalFactor": 1, - "range": false, - "refId": "A", - "step": 240 - } - ], - "title": "SWAP Used", - "type": "gauge" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "description": "Total number of CPU cores", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 2, - "w": 2, - "x": 18, - "y": 1 - }, - "id": 14, - "maxDataPoints": 100, - "options": { - "colorMode": "none", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "horizontal", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "12.0.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "fej9ntb4ninswf" - }, - "editorMode": "code", - "expr": "system_cpu_logical_count{ k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\", state=\"used\" }", - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "CPU Cores", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "description": "Total RAM", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "decimals": 0, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "bytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 2, - "w": 2, - "x": 20, - "y": 1 - }, - "id": 75, - "maxDataPoints": 100, - "options": { - "colorMode": "none", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "horizontal", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "12.0.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "fej9ntb4ninswf" - }, - "editorMode": "code", - "exemplar": false, - "expr": "system_memory_limit_bytes{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\"}", - "instant": true, - "intervalFactor": 1, - "legendFormat": "__auto", - "range": false, - "refId": "A", - "step": 240 - } - ], - "title": "RAM Total", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "description": "Total SWAP", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "decimals": 0, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "bytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 2, - "w": 2, - "x": 22, - "y": 1 - }, - "id": 18, - "maxDataPoints": 100, - "options": { - "colorMode": "none", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "horizontal", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "12.0.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum(system_paging_usage_bytes{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\"})", - "instant": true, - "intervalFactor": 1, - "legendFormat": "__auto", - "range": false, - "refId": "A", - "step": 240 - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "editorMode": "code", - "expr": "", - "hide": false, - "instant": false, - "legendFormat": "__auto", - "range": true, - "refId": "B" - } - ], - "title": "SWAP Total", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "description": "Total FS\n\nhttps://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/receiver/hostmetricsreceiver/internal/scraper/filesystemscraper/documentation.md", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "decimals": 0, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "rgba(50, 172, 45, 0.97)" - }, - { - "color": "rgba(237, 129, 40, 0.89)", - "value": 70 - }, - { - "color": "rgba(245, 54, 54, 0.9)", - "value": 90 - } - ] - }, - "unit": "bytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 2, - "w": 2, - "x": 18, - "y": 3 - }, - "id": 23, - "maxDataPoints": 100, - "options": { - "colorMode": "none", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "horizontal", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "12.0.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "fej9ntb4ninswf" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum(system_filesystem_usage_bytes{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\"})", - "format": "time_series", - "hide": false, - "instant": true, - "intervalFactor": 1, - "range": false, - "refId": "A", - "step": 240 - } - ], - "title": "FS Total", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "description": "System uptime", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "decimals": 1, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 2, - "w": 4, - "x": 20, - "y": 3 - }, - "id": 15, - "maxDataPoints": 100, - "options": { - "colorMode": "none", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "horizontal", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "12.0.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "system_uptime_seconds{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\"}", - "instant": true, - "intervalFactor": 1, - "legendFormat": "__auto", - "range": false, - "refId": "A", - "step": 240 - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "editorMode": "code", - "expr": "", - "hide": false, - "instant": false, - "legendFormat": "__auto", - "range": true, - "refId": "B" - } - ], - "title": "Uptime", - "type": "stat" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 5 - }, - "id": 266, - "panels": [], - "title": "Basic", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "barWidthFactor": 0.6, - "drawStyle": "line", - "fillOpacity": 40, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "percent" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "links": [], - "mappings": [], - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Busy System" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "#890F02", - "mode": "fixed" - } - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Busy User" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "blue", - "mode": "fixed" - } - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Busy Wait" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "yellow", - "mode": "fixed" - } - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Idle" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "#7EB26D", - "mode": "fixed" - } - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Busy IRQs" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "super-light-yellow", - "mode": "fixed" - } - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Busy Other" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "light-orange", - "mode": "fixed" - } - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Idle" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "green", - "mode": "fixed" - } - } - ] - } - ] - }, - "gridPos": { - "h": 7, - "w": 6, - "x": 0, - "y": 6 - }, - "id": 77, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true, - "width": 250 - }, - "tooltip": { - "hideZeros": false, - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "12.0.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "fej9ntb4ninswf" - }, - "editorMode": "code", - "expr": "sum (irate(system_cpu_time_seconds_total{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\", state=\"system\"}[$__rate_interval])) \n/\nsum ((irate(system_cpu_time_seconds_total{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\"}[$__rate_interval])))", - "format": "time_series", - "hide": false, - "intervalFactor": 1, - "legendFormat": "Busy System", - "range": true, - "refId": "busy system", - "step": 240 - }, - { - "datasource": { - "type": "prometheus", - "uid": "fej9ntb4ninswf" - }, - "editorMode": "code", - "expr": "sum (irate(system_cpu_time_seconds_total{kk8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\", state=\"user\"}[$__rate_interval])) \n/ \nsum ((irate(system_cpu_time_seconds_total{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\"}[$__rate_interval])))", - "format": "time_series", - "hide": false, - "intervalFactor": 1, - "legendFormat": "Busy User", - "range": true, - "refId": "busy user", - "step": 240 - }, - { - "datasource": { - "type": "prometheus", - "uid": "fej9ntb4ninswf" - }, - "editorMode": "code", - "expr": "sum(irate(system_cpu_time_seconds_total{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\", state=\"wait\"}[$__rate_interval])) \n/ \nsum ((irate(system_cpu_time_seconds_total{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\"}[$__rate_interval])))", - "format": "time_series", - "hide": false, - "intervalFactor": 1, - "legendFormat": "Busy Wait", - "range": true, - "refId": "busy wait", - "step": 240 - }, - { - "datasource": { - "type": "prometheus", - "uid": "fej9ntb4ninswf" - }, - "editorMode": "code", - "expr": "sum (irate(system_cpu_time_seconds_total{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\", state=~\".*irq\"}[$__rate_interval])) \n/\nsum((irate(system_cpu_time_seconds_total{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\"}[$__rate_interval])))", - "format": "time_series", - "hide": false, - "intervalFactor": 1, - "legendFormat": "Busy IRQs", - "range": true, - "refId": "busy irq", - "step": 240 - }, - { - "datasource": { - "type": "prometheus", - "uid": "fej9ntb4ninswf" - }, - "editorMode": "code", - "expr": "sum(irate(system_cpu_time_seconds_total{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\", state!~\".*irq\", state!=\"idle\", state!=\"user\", state!=\"wait\", state!=\"system\"}[$__rate_interval]))\n/\nsum ((irate(system_cpu_time_seconds_total{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\"}[$__rate_interval])))", - "format": "time_series", - "hide": false, - "intervalFactor": 1, - "legendFormat": "Busy Other", - "range": true, - "refId": "busy other", - "step": 240 - }, - { - "datasource": { - "type": "prometheus", - "uid": "fej9ntb4ninswf" - }, - "editorMode": "code", - "expr": "sum by(host_name) (irate(system_cpu_time_seconds_total{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\", state=\"idle\"}[$__rate_interval])) \n/ \non(host_name) group_left sum by (host_name)((irate(system_cpu_time_seconds_total{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\"}[$__rate_interval])))", - "format": "time_series", - "hide": false, - "intervalFactor": 1, - "legendFormat": "Idle", - "range": true, - "refId": "idle", - "step": 240 - } - ], - "title": "CPU", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "barWidthFactor": 0.6, - "drawStyle": "line", - "fillOpacity": 40, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "normal" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "links": [], - "mappings": [], - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "bytes" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Apps" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "#629E51", - "mode": "fixed" - } - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Buffers" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "#614D93", - "mode": "fixed" - } - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Cache" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "#6D1F62", - "mode": "fixed" - } - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Cached" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "#511749", - "mode": "fixed" - } - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Committed" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "#508642", - "mode": "fixed" - } - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Free" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "#0A437C", - "mode": "fixed" - } - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Hardware Corrupted - Amount of RAM that the kernel identified as corrupted / not working" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "#CFFAFF", - "mode": "fixed" - } - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Inactive" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "#584477", - "mode": "fixed" - } - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "PageTables" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "#0A50A1", - "mode": "fixed" - } - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Page_Tables" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "#0A50A1", - "mode": "fixed" - } - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "RAM_Free" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "#E0F9D7", - "mode": "fixed" - } - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "SWAP Used" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "#BF1B00", - "mode": "fixed" - } - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Slab" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "#806EB7", - "mode": "fixed" - } - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Slab_Cache" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "#E0752D", - "mode": "fixed" - } - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Swap" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "#BF1B00", - "mode": "fixed" - } - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Swap Used" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "#BF1B00", - "mode": "fixed" - } - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Swap_Cache" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "#C15C17", - "mode": "fixed" - } - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Swap_Free" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "#2F575E", - "mode": "fixed" - } - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Unused" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "#EAB839", - "mode": "fixed" - } - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "RAM Total" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "#E0F9D7", - "mode": "fixed" - } - }, - { - "id": "custom.fillOpacity", - "value": 0 - }, - { - "id": "custom.stacking", - "value": { - "group": false, - "mode": "normal" - } - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "RAM Cache + Buffer" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "#052B51", - "mode": "fixed" - } - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "RAM Free" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "#7EB26D", - "mode": "fixed" - } - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Available" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "#DEDAF7", - "mode": "fixed" - } - }, - { - "id": "custom.fillOpacity", - "value": 0 - }, - { - "id": "custom.stacking", - "value": { - "group": false, - "mode": "normal" - } - } - ] - } - ] - }, - "gridPos": { - "h": 7, - "w": 5, - "x": 6, - "y": 6 - }, - "id": 78, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true, - "width": 350 - }, - "tooltip": { - "hideZeros": false, - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "12.0.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "editorMode": "code", - "expr": "sum(system_memory_usage_bytes{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\"})", - "format": "time_series", - "hide": false, - "intervalFactor": 1, - "legendFormat": "Available", - "range": true, - "refId": "A", - "step": 240 - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "editorMode": "code", - "expr": "sum(system_memory_usage_bytes{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\", state=\"free\"})", - "format": "time_series", - "hide": false, - "intervalFactor": 1, - "legendFormat": "RAM Free", - "range": true, - "refId": "B", - "step": 240 - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "editorMode": "code", - "expr": "sum(system_memory_usage_bytes{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\", state=~\"cached|buffered\"})", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "RAM Cache + Buffer", - "range": true, - "refId": "C", - "step": 240 - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum(system_memory_usage_bytes{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\", state=\"used\"})", - "format": "time_series", - "instant": false, - "intervalFactor": 1, - "legendFormat": "Used", - "range": true, - "refId": "E", - "step": 240 - } - ], - "title": "Memory", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "Receive (-) / Transmit (+)", - "axisPlacement": "auto", - "barAlignment": 0, - "barWidthFactor": 0.6, - "drawStyle": "line", - "fillOpacity": 40, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": 3600000, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "links": [], - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "binBps" - }, - "overrides": [ - { - "matcher": { - "id": "byRegexp", - "options": "/.*Rec.*/" - }, - "properties": [ - { - "id": "custom.transform", - "value": "negative-Y" - } - ] - } - ] - }, - "gridPos": { - "h": 7, - "w": 6, - "x": 11, - "y": 6 - }, - "id": 74, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "hideZeros": false, - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "12.0.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "editorMode": "code", - "expr": "sum (rate(system_network_io_bytes_total{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\", direction=\"receive\", job=\"\"}[$__rate_interval]))", - "format": "time_series", - "hide": false, - "intervalFactor": 1, - "legendFormat": "Receive", - "range": true, - "refId": "receive", - "step": 240 - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "editorMode": "code", - "expr": "sum (rate(system_network_io_bytes_total{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\", direction=\"transmit\", job=\"\"}[$__rate_interval]))", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "Transmit", - "range": true, - "refId": "transmit", - "step": 240 - } - ], - "title": "Network Traffic", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "Read (-) / Write (+)", - "axisPlacement": "auto", - "barAlignment": 0, - "barWidthFactor": 0.6, - "drawStyle": "line", - "fillOpacity": 40, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "smooth", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "links": [], - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "Bps" - }, - "overrides": [ - { - "matcher": { - "id": "byRegexp", - "options": "/.*Read*./" - }, - "properties": [ - { - "id": "custom.transform", - "value": "negative-Y" - } - ] - } - ] - }, - "gridPos": { - "h": 7, - "w": 7, - "x": 17, - "y": 6 - }, - "id": 42, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "hideZeros": false, - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "12.0.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "editorMode": "code", - "expr": "sum(irate(system_disk_io_bytes_total{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\", direction=\"read\"}[$__rate_interval]))", - "format": "time_series", - "hide": false, - "intervalFactor": 1, - "legendFormat": "Read", - "range": true, - "refId": "read", - "step": 240 - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "editorMode": "code", - "expr": "sum(irate(system_disk_io_bytes_total{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\", direction=\"write\"}[$__rate_interval]))", - "format": "time_series", - "hide": false, - "intervalFactor": 1, - "legendFormat": "Write", - "range": true, - "refId": "write", - "step": 240 - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "editorMode": "code", - "expr": "", - "hide": false, - "instant": false, - "legendFormat": "__auto", - "range": true, - "refId": "C" - } - ], - "title": "I/O Usage Read / Write", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "cellOptions": { - "type": "auto" - }, - "inspect": false - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Trend #transmit_bytes" - }, - "properties": [ - { - "id": "unit", - "value": "binBps" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Trend #receive_bytes" - }, - "properties": [ - { - "id": "unit", - "value": "binBps" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Trend #receive_dropped_packets" - }, - "properties": [ - { - "id": "unit", - "value": "pps" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Trend #transmit_dropped_packets" - }, - "properties": [ - { - "id": "unit", - "value": "pps" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Trend #receive_errors" - }, - "properties": [ - { - "id": "unit", - "value": "pps" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Trend #transmit_errors" - }, - "properties": [ - { - "id": "unit", - "value": "pps" - } - ] - } - ] - }, - "gridPos": { - "h": 8, - "w": 15, - "x": 0, - "y": 14 - }, - "id": 270, - "options": { - "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true - }, - "pluginVersion": "12.0.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "disableTextWrap": false, - "editorMode": "code", - "expr": "sum by(device) (rate(system_network_io_bytes_total{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\", job=\"\", direction=\"transmit\"}[$__rate_interval]))", - "fullMetaSearch": false, - "hide": false, - "includeNullMetadata": true, - "instant": false, - "legendFormat": "__auto", - "range": true, - "refId": "transmit_bytes", - "useBackend": false - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "expr": "sum by(device) (rate(system_network_io_bytes_total{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\", job=\"\", direction=\"receive\"}[$__rate_interval]))", - "hide": false, - "instant": false, - "legendFormat": "__auto", - "range": true, - "refId": "receive_bytes" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "expr": "sum by(device) (rate(system_network_dropped_total{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\", job=\"\",direction=\"receive\"}[$__rate_interval]))", - "hide": false, - "instant": false, - "legendFormat": "__auto", - "range": true, - "refId": "receive_dropped_packets" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "expr": "sum by(device) (rate(system_network_dropped_total{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\", job=\"\",direction=\"transmit\"}[$__rate_interval]))", - "hide": false, - "instant": false, - "legendFormat": "__auto", - "range": true, - "refId": "transmit_dropped_packets" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "expr": "sum by(device) (rate(system_network_errors_total{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\", job=\"\",direction=\"receive\"}[$__rate_interval]))", - "hide": false, - "instant": false, - "legendFormat": "__auto", - "range": true, - "refId": "receive_errors" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "expr": "sum by(device) (rate(system_network_errors_total{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\", job=\"\",direction=\"transmit\"}[$__rate_interval]))", - "hide": false, - "instant": false, - "legendFormat": "__auto", - "range": true, - "refId": "transmit_errors" - } - ], - "title": "Network traffic", - "transformations": [ - { - "id": "timeSeriesTable", - "options": { - "A": { - "timeField": "Time" - }, - "receive": { - "timeField": "Time" - }, - "receive_bytes": { - "timeField": "Time" - }, - "receive_dropped_packets": { - "timeField": "Time" - }, - "receive_errors": { - "timeField": "Time" - }, - "transmit": { - "timeField": "Time" - }, - "transmit_bytes": { - "timeField": "Time" - }, - "transmit_dropped_packets": { - "timeField": "Time" - }, - "transmit_errors": { - "timeField": "Time" - } - } - }, - { - "id": "joinByField", - "options": { - "byField": "device", - "mode": "outer" - } - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "includeByName": {}, - "indexByName": { - "Trend #receive_bytes": 4, - "Trend #receive_dropped_packets": 5, - "Trend #receive_errors": 3, - "Trend #transmit_bytes": 1, - "Trend #transmit_dropped_packets": 2, - "Trend #transmit_errors": 6, - "device": 0 - }, - "renameByName": { - "Trend #receive": "Receive", - "Trend #receive_bytes": "Receive", - "Trend #receive_dropped_packets": "Receive dropped", - "Trend #receive_errors": "Transmit err", - "Trend #transmit": "Transmit", - "Trend #transmit_bytes": "Transmit", - "Trend #transmit_dropped_packets": "Transmit dropped", - "Trend #transmit_errors": "Receive err", - "device": "Interface" - } - } - } - ], - "type": "table" - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "cellOptions": { - "type": "auto" - }, - "inspect": false - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "bytes" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Used %" - }, - "properties": [ - { - "id": "custom.cellOptions", - "value": { - "mode": "basic", - "type": "gauge", - "valueDisplayMode": "color" - } - }, - { - "id": "unit", - "value": "percentunit" - }, - { - "id": "min", - "value": 0 - }, - { - "id": "max", - "value": 1 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Free" - }, - "properties": [ - { - "id": "custom.width", - "value": 80 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Total" - }, - "properties": [ - { - "id": "custom.width", - "value": 80 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Used" - }, - "properties": [ - { - "id": "custom.width", - "value": 78 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Mount" - }, - "properties": [ - { - "id": "custom.width", - "value": 200 - } - ] - } - ] - }, - "gridPos": { - "h": 8, - "w": 9, - "x": 15, - "y": 14 - }, - "id": 269, - "options": { - "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "frameIndex": 0, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "12.0.2", - "targets": [ - { - "disableTextWrap": false, - "editorMode": "code", - "exemplar": false, - "expr": "sum by(mountpoint) (system_filesystem_usage_bytes{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\", state=\"free\"})", - "format": "table", - "fullMetaSearch": false, - "includeNullMetadata": true, - "instant": true, - "legendFormat": "__auto", - "range": false, - "refId": "free", - "useBackend": false - }, - { - "datasource": { - "type": "prometheus", - "uid": "webstore-metrics" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum by(mountpoint) (system_filesystem_usage_bytes{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$host_name\"})", - "format": "table", - "hide": false, - "instant": true, - "legendFormat": "__auto", - "range": false, - "refId": "total" - } - ], - "title": "Disk usage", - "transformations": [ - { - "id": "groupBy", - "options": { - "fields": { - "/oldroot": { - "aggregations": [ - "lastNotNull" - ], - "operation": "aggregate" - }, - "/var/lib": { - "aggregations": [ - "lastNotNull" - ], - "operation": "aggregate" - }, - "Value": { - "aggregations": [ - "lastNotNull" - ], - "operation": "aggregate" - }, - "Value #free": { - "aggregations": [ - "lastNotNull" - ], - "operation": "aggregate" - }, - "Value #total": { - "aggregations": [ - "lastNotNull" - ], - "operation": "aggregate" - }, - "mountpoint": { - "aggregations": [], - "operation": "groupby" - } - } - } - }, - { - "id": "merge", - "options": {} - }, - { - "id": "calculateField", - "options": { - "alias": "used", - "binary": { - "left": { - "matcher": { - "id": "byName", - "options": "Value #total (lastNotNull)" - } - }, - "operator": "-", - "right": { - "matcher": { - "id": "byName", - "options": "Value #free (lastNotNull)" - } - } - }, - "mode": "binary", - "reduce": { - "reducer": "sum" - } - } - }, - { - "id": "calculateField", - "options": { - "alias": "Used %", - "binary": { - "left": { - "matcher": { - "id": "byName", - "options": "used" - } - }, - "operator": "/", - "right": { - "matcher": { - "id": "byName", - "options": "Value #total (lastNotNull)" - } - } - }, - "mode": "binary", - "reduce": { - "reducer": "sum" - } - } - }, - { - "id": "organize", - "options": { - "excludeByName": {}, - "includeByName": {}, - "indexByName": {}, - "renameByName": { - "Used %": "Used %", - "Value #free (lastNotNull)": "Free", - "Value #total (lastNotNull)": "Total", - "mountpoint": "Mount", - "used": "Used" - } - } - }, - { - "id": "sortBy", - "options": { - "fields": {}, - "sort": [ - { - "field": "Mount" - } - ] - } - } - ], - "type": "table" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 13 - }, - "id": 272, - "panels": [], - "title": "Details", - "type": "row" - } - ], - "preload": false, - "refresh": "", - "schemaVersion": 41, - "tags": [ - "linux", - "opentelemetry" - ], - "templating": { - "list": [ - { - "current": { - "text": "Prometheus", - "value": "webstore-metrics" - }, - "includeAll": false, - "label": "Data Source", - "name": "DS_PROMETHEUS", - "options": [], - "query": "prometheus", - "refresh": 1, - "regex": "(?!grafanacloud-usage|grafanacloud-ml-metrics).+", - "type": "datasource" - }, - { - "allValue": ".*", - "allowCustomValue": true, - "current": { - "text": "All", - "value": "$__all" - }, - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "definition": "label_values(otelcol_process_uptime,k8s_cluster_name)", - "description": "When deploying PostgreSQL on Kubernetes, name of the Kubernetes cluster. \nFor other deployments, select \"All\". ", - "includeAll": true, - "label": "K8s Cluster", - "multi": true, - "name": "k8s_cluster_name", - "options": [], - "query": { - "qryType": 1, - "query": "label_values(otelcol_process_uptime,k8s_cluster_name)", - "refId": "PrometheusVariableQueryEditor-VariableQuery" - }, - "refresh": 2, - "regex": "", - "sort": 1, - "type": "query" - }, - { - "allValue": ".*", - "allowCustomValue": false, - "current": { - "text": "All", - "value": "$__all" - }, - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "definition": "label_values(otelcol_process_uptime{k8s_cluster_name=~\"$k8s_cluster_name\"},k8s_node_name)", - "description": "When monitoring Kubernetes, name of the K8s node.\nFor other deployments, select \"All\". ", - "includeAll": true, - "label": "K8s node", - "name": "node_name", - "options": [], - "query": { - "qryType": 1, - "query": "label_values(otelcol_process_uptime{k8s_cluster_name=~\"$k8s_cluster_name\"},k8s_node_name)", - "refId": "PrometheusVariableQueryEditor-VariableQuery" - }, - "refresh": 2, - "regex": "", - "sort": 1, - "type": "query" - }, - { - "allValue": ".*", - "current": { - "text": "docker-desktop", - "value": "docker-desktop" - }, - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "definition": "label_values(otelcol_process_uptime_seconds_total,host_name)", - "includeAll": true, - "label": "Host", - "name": "host_name", - "options": [], - "query": { - "qryType": 1, - "query": "label_values(otelcol_process_uptime_seconds_total,host_name)", - "refId": "PrometheusVariableQueryEditor-VariableQuery" - }, - "refresh": 2, - "regex": "", - "sort": 5, - "type": "query" - }, - { - "allowCustomValue": false, - "current": { - "text": "", - "value": "" - }, - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "definition": "query_result(count(otelcol_process_uptime{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$ip\"}))", - "hide": 2, - "label": "host count", - "name": "host_count", - "options": [], - "query": { - "qryType": 3, - "query": "query_result(count(otelcol_process_uptime{k8s_cluster_name=~\"$k8s_cluster_name\", k8s_node_name=~\"${node_name}\", host_name=~\"$ip\"}))", - "refId": "PrometheusVariableQueryEditor-VariableQuery" - }, - "refresh": 2, - "regex": "/{} (.*) .*/", - "type": "query" - } - ] - }, - "time": { - "from": "now-30m", - "to": "now" - }, - "timepicker": {}, - "timezone": "browser", - "title": "Linux", - "uid": "otel-demo-hostmetrics", - "version": 1 - } ---- -# Source: opentelemetry-demo/templates/grafana-config.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: grafana-dashboard-opentelemetry-collector - namespace: default - labels: - helm.sh/chart: opentelemetry-demo-0.38.4 - - - app.kubernetes.io/version: "2.1.3" - app.kubernetes.io/part-of: opentelemetry-demo - app.kubernetes.io/managed-by: Helm - 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: default - labels: - helm.sh/chart: opentelemetry-demo-0.38.4 - - - app.kubernetes.io/version: "2.1.3" - app.kubernetes.io/part-of: opentelemetry-demo - app.kubernetes.io/managed-by: Helm - 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: default - labels: - helm.sh/chart: opentelemetry-demo-0.38.4 - - - app.kubernetes.io/version: "2.1.3" - app.kubernetes.io/part-of: opentelemetry-demo - app.kubernetes.io/managed-by: Helm - 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: default - labels: - helm.sh/chart: opentelemetry-demo-0.38.4 - - - app.kubernetes.io/version: "2.1.3" - app.kubernetes.io/part-of: opentelemetry-demo - app.kubernetes.io/managed-by: Helm - 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 diff --git a/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/opensearch/configmap.yaml b/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/opensearch/configmap.yaml deleted file mode 100644 index 566d68cd04..0000000000 --- a/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/opensearch/configmap.yaml +++ /dev/null @@ -1,65 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/opensearch/templates/configmap.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: opensearch-config - labels: - helm.sh/chart: opensearch-3.2.1 - app.kubernetes.io/name: opensearch - app.kubernetes.io/instance: example - app.kubernetes.io/version: "3.2.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: opensearch -data: - opensearch.yml: | - cluster.name: opensearch-cluster - - # Bind to all interfaces because we don't know what IP address Docker will assign to us. - network.host: 0.0.0.0 - - # Setting network.host to a non-loopback address enables the annoying bootstrap checks. "Single-node" mode disables them again. - # Implicitly done if ".singleNode" is set to "true". - # discovery.type: single-node - - # Start OpenSearch Security Demo Configuration - # WARNING: revise all the lines below before you go into production - # plugins: - # security: - # ssl: - # transport: - # pemcert_filepath: esnode.pem - # pemkey_filepath: esnode-key.pem - # pemtrustedcas_filepath: root-ca.pem - # enforce_hostname_verification: false - # http: - # enabled: true - # pemcert_filepath: esnode.pem - # pemkey_filepath: esnode-key.pem - # pemtrustedcas_filepath: root-ca.pem - # allow_unsafe_democertificates: true - # allow_default_init_securityindex: true - # authcz: - # admin_dn: - # - CN=kirk,OU=client,O=client,L=test,C=de - # audit.type: internal_opensearch - # enable_snapshot_restore_privilege: true - # check_snapshot_restore_write_privileges: true - # restapi: - # roles_enabled: ["all_access", "security_rest_api_access"] - # system_indices: - # enabled: true - # indices: - # [ - # ".opendistro-alerting-config", - # ".opendistro-alerting-alert*", - # ".opendistro-anomaly-results*", - # ".opendistro-anomaly-detector*", - # ".opendistro-anomaly-checkpoints", - # ".opendistro-anomaly-detection-state", - # ".opendistro-reports-*", - # ".opendistro-notifications-*", - # ".opendistro-notebooks", - # ".opendistro-asynchronous-search-response*", - # ] - ######## End OpenSearch Security Demo Configuration ######## diff --git a/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/opensearch/poddisruptionbudget.yaml b/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/opensearch/poddisruptionbudget.yaml deleted file mode 100644 index 9fb557fddc..0000000000 --- a/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/opensearch/poddisruptionbudget.yaml +++ /dev/null @@ -1,19 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/opensearch/templates/poddisruptionbudget.yaml -apiVersion: policy/v1 -kind: PodDisruptionBudget -metadata: - name: "opensearch-pdb" - labels: - helm.sh/chart: opensearch-3.2.1 - app.kubernetes.io/name: opensearch - app.kubernetes.io/instance: example - app.kubernetes.io/version: "3.2.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: opensearch -spec: - maxUnavailable: 1 - selector: - matchLabels: - app.kubernetes.io/name: opensearch - app.kubernetes.io/instance: example diff --git a/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/opensearch/service.yaml b/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/opensearch/service.yaml deleted file mode 100644 index 50512c48cf..0000000000 --- a/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/opensearch/service.yaml +++ /dev/null @@ -1,59 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/opensearch/templates/service.yaml -kind: Service -apiVersion: v1 -metadata: - name: opensearch - labels: - helm.sh/chart: opensearch-3.2.1 - app.kubernetes.io/name: opensearch - app.kubernetes.io/instance: example - app.kubernetes.io/version: "3.2.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: opensearch - annotations: - {} -spec: - type: ClusterIP - selector: - app.kubernetes.io/name: opensearch - app.kubernetes.io/instance: example - 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: - helm.sh/chart: opensearch-3.2.1 - app.kubernetes.io/name: opensearch - app.kubernetes.io/instance: example - app.kubernetes.io/version: "3.2.0" - app.kubernetes.io/managed-by: Helm - 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: example - ports: - - name: http - port: 9200 - - name: transport - port: 9300 - - name: metrics - port: 9600 diff --git a/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/opensearch/statefulset.yaml b/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/opensearch/statefulset.yaml deleted file mode 100644 index ba44299d5b..0000000000 --- a/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/opensearch/statefulset.yaml +++ /dev/null @@ -1,154 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/opensearch/templates/statefulset.yaml -apiVersion: apps/v1 -kind: StatefulSet -metadata: - name: opensearch - labels: - helm.sh/chart: opensearch-3.2.1 - app.kubernetes.io/name: opensearch - app.kubernetes.io/instance: example - app.kubernetes.io/version: "3.2.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: opensearch - annotations: - majorVersion: "3" -spec: - serviceName: opensearch-headless - selector: - matchLabels: - app.kubernetes.io/name: opensearch - app.kubernetes.io/instance: example - replicas: 1 - podManagementPolicy: Parallel - updateStrategy: - type: RollingUpdate - template: - metadata: - name: "opensearch" - labels: - helm.sh/chart: opensearch-3.2.1 - app.kubernetes.io/name: opensearch - app.kubernetes.io/instance: example - app.kubernetes.io/version: "3.2.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: opensearch - annotations: - configchecksum: 52cb483949e5d3223764abb58188425e1216ead39156a9d761f3ab1a8b9ae83 - 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: - - example - - 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 diff --git a/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/opentelemetry-collector/clusterrole.yaml b/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/opentelemetry-collector/clusterrole.yaml deleted file mode 100644 index 25791dfaa4..0000000000 --- a/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/opentelemetry-collector/clusterrole.yaml +++ /dev/null @@ -1,24 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/opentelemetry-collector/templates/clusterrole.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: otel-collector - labels: - helm.sh/chart: opentelemetry-collector-0.134.0 - app.kubernetes.io/name: opentelemetry-collector - app.kubernetes.io/instance: example - app.kubernetes.io/version: "0.135.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/part-of: opentelemetry-collector - app.kubernetes.io/component: agent-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"] diff --git a/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/opentelemetry-collector/clusterrolebinding.yaml b/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/opentelemetry-collector/clusterrolebinding.yaml deleted file mode 100644 index efdd7fe3a9..0000000000 --- a/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/opentelemetry-collector/clusterrolebinding.yaml +++ /dev/null @@ -1,22 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/opentelemetry-collector/templates/clusterrolebinding.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: otel-collector - labels: - helm.sh/chart: opentelemetry-collector-0.134.0 - app.kubernetes.io/name: opentelemetry-collector - app.kubernetes.io/instance: example - app.kubernetes.io/version: "0.135.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/part-of: opentelemetry-collector - app.kubernetes.io/component: agent-collector -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: otel-collector -subjects: -- kind: ServiceAccount - name: otel-collector - namespace: default diff --git a/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/opentelemetry-collector/configmap-agent.yaml b/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/opentelemetry-collector/configmap-agent.yaml deleted file mode 100644 index bad65c4ffe..0000000000 --- a/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/opentelemetry-collector/configmap-agent.yaml +++ /dev/null @@ -1,208 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/opentelemetry-collector/templates/configmap-agent.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: otel-collector-agent - namespace: default - labels: - helm.sh/chart: opentelemetry-collector-0.134.0 - app.kubernetes.io/name: opentelemetry-collector - app.kubernetes.io/instance: example - app.kubernetes.io/version: "0.135.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/part-of: opentelemetry-collector - app.kubernetes.io/component: agent-collector -data: - relay: | - connectors: - spanmetrics: {} - exporters: - debug: {} - opensearch: - http: - endpoint: http://opensearch:9200 - tls: - insecure: true - logs_index: otel-logs - logs_index_time_format: yyyy-MM-dd - otlp: - endpoint: jaeger-collector:4317 - tls: - insecure: true - otlphttp/prometheus: - endpoint: http://prometheus:9090/api/v1/otlp - tls: - insecure: true - extensions: - health_check: - endpoint: ${env:MY_POD_IP}:13133 - processors: - batch: {} - k8sattributes: - extract: - metadata: - - k8s.namespace.name - - k8s.deployment.name - - k8s.statefulset.name - - k8s.daemonset.name - - k8s.cronjob.name - - k8s.job.name - - k8s.node.name - - k8s.pod.name - - k8s.pod.uid - - k8s.pod.start_time - filter: - node_from_env_var: K8S_NODE_NAME - passthrough: false - pod_association: - - sources: - - from: resource_attribute - name: k8s.pod.ip - - sources: - - from: resource_attribute - name: k8s.pod.uid - - sources: - - from: connection - memory_limiter: - check_interval: 5s - limit_percentage: 80 - spike_limit_percentage: 25 - resource: - attributes: - - action: insert - from_attribute: k8s.pod.uid - key: service.instance.id - resourcedetection: - detectors: - - env - - system - transform: - error_mode: ignore - trace_statements: - - context: span - statements: - - replace_pattern(name, "\\?.*", "") - - replace_match(name, "GET /api/products/*", "GET /api/products/{productId}") - receivers: - httpcheck/frontend-proxy: - targets: - - endpoint: http://frontend-proxy:8080 - jaeger: - protocols: - grpc: - endpoint: ${env:MY_POD_IP}:14250 - thrift_compact: - endpoint: ${env:MY_POD_IP}:6831 - thrift_http: - endpoint: ${env:MY_POD_IP}:14268 - nginx: - collection_interval: 10s - endpoint: http://image-provider:8081/status - otlp: - protocols: - grpc: - endpoint: ${env:MY_POD_IP}:4317 - http: - cors: - allowed_origins: - - http://* - - https://* - endpoint: ${env:MY_POD_IP}:4318 - postgresql: - endpoint: postgresql:5432 - metrics: - postgresql.blks_hit: - enabled: true - postgresql.blks_read: - enabled: true - postgresql.deadlocks: - enabled: true - postgresql.tup_deleted: - enabled: true - postgresql.tup_fetched: - enabled: true - postgresql.tup_inserted: - enabled: true - postgresql.tup_returned: - enabled: true - postgresql.tup_updated: - enabled: true - password: otel - tls: - insecure: true - username: root - prometheus: - config: - scrape_configs: - - job_name: opentelemetry-collector - scrape_interval: 10s - static_configs: - - targets: - - ${env:MY_POD_IP}:8888 - redis: - collection_interval: 10s - endpoint: valkey-cart:6379 - username: valkey - zipkin: - endpoint: ${env:MY_POD_IP}:9411 - service: - extensions: - - health_check - pipelines: - logs: - exporters: - - opensearch - - debug - processors: - - k8sattributes - - memory_limiter - - resourcedetection - - resource - - batch - receivers: - - otlp - metrics: - exporters: - - otlphttp/prometheus - - debug - processors: - - k8sattributes - - memory_limiter - - resourcedetection - - resource - - batch - receivers: - - httpcheck/frontend-proxy - - nginx - - otlp - - postgresql - - redis - - spanmetrics - traces: - exporters: - - otlp - - debug - - spanmetrics - processors: - - k8sattributes - - memory_limiter - - resourcedetection - - resource - - transform - - batch - receivers: - - otlp - - jaeger - - zipkin - telemetry: - metrics: - level: detailed - readers: - - periodic: - exporter: - otlp: - endpoint: otel-collector:4318 - protocol: http/protobuf - interval: 10000 - timeout: 5000 diff --git a/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/opentelemetry-collector/daemonset.yaml b/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/opentelemetry-collector/daemonset.yaml deleted file mode 100644 index db2465c93d..0000000000 --- a/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/opentelemetry-collector/daemonset.yaml +++ /dev/null @@ -1,116 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/opentelemetry-collector/templates/daemonset.yaml -apiVersion: apps/v1 -kind: DaemonSet -metadata: - name: otel-collector-agent - namespace: default - labels: - helm.sh/chart: opentelemetry-collector-0.134.0 - app.kubernetes.io/name: opentelemetry-collector - app.kubernetes.io/instance: example - app.kubernetes.io/version: "0.135.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/part-of: opentelemetry-collector - app.kubernetes.io/component: agent-collector -spec: - revisionHistoryLimit: 10 - selector: - matchLabels: - app.kubernetes.io/name: opentelemetry-collector - app.kubernetes.io/instance: example - component: agent-collector - updateStrategy: - type: RollingUpdate - template: - metadata: - annotations: - checksum/config: 3149b870860117fac06ed16e8d689bd01d81c3244611a7722a9ca722c071c22b - opentelemetry_community_demo: "true" - prometheus.io/scrape: "true" - labels: - app.kubernetes.io/name: opentelemetry-collector - app.kubernetes.io/instance: example - component: agent-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 - hostPort: 6831 - - name: jaeger-grpc - containerPort: 14250 - protocol: TCP - hostPort: 14250 - - name: jaeger-thrift - containerPort: 14268 - protocol: TCP - hostPort: 14268 - - name: metrics - containerPort: 8888 - protocol: TCP - - name: otlp - containerPort: 4317 - protocol: TCP - hostPort: 4317 - - name: otlp-http - containerPort: 4318 - protocol: TCP - hostPort: 4318 - - name: zipkin - containerPort: 9411 - protocol: TCP - hostPort: 9411 - env: - - name: MY_POD_IP - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: status.podIP - - name: K8S_NODE_NAME - valueFrom: - fieldRef: - fieldPath: spec.nodeName - - name: K8S_NODE_IP - valueFrom: - fieldRef: - fieldPath: status.hostIP - - 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-agent - items: - - key: relay - path: relay.yaml - hostNetwork: false diff --git a/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/opentelemetry-collector/serviceaccount.yaml b/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/opentelemetry-collector/serviceaccount.yaml deleted file mode 100644 index a987f56971..0000000000 --- a/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/opentelemetry-collector/serviceaccount.yaml +++ /dev/null @@ -1,15 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/opentelemetry-collector/templates/serviceaccount.yaml -apiVersion: v1 -kind: ServiceAccount -metadata: - name: otel-collector - namespace: default - labels: - helm.sh/chart: opentelemetry-collector-0.134.0 - app.kubernetes.io/name: opentelemetry-collector - app.kubernetes.io/instance: example - app.kubernetes.io/version: "0.135.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/part-of: opentelemetry-collector - app.kubernetes.io/component: agent-collector diff --git a/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/prometheus/cm.yaml b/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/prometheus/cm.yaml deleted file mode 100644 index a5e59fac28..0000000000 --- a/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/prometheus/cm.yaml +++ /dev/null @@ -1,361 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/prometheus/templates/cm.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - labels: - app.kubernetes.io/component: server - app.kubernetes.io/name: prometheus - app.kubernetes.io/instance: example - app.kubernetes.io/version: v3.6.0 - helm.sh/chart: prometheus-27.39.0 - app.kubernetes.io/part-of: prometheus - name: prometheus - namespace: default -data: - allow-snippet-annotations: "false" - alerting_rules.yml: | - {} - alerts: | - {} - prometheus.yml: | - global: - evaluation_interval: 1m - scrape_interval: 1m - scrape_timeout: 10s - storage: - tsdb: - out_of_order_time_window: 30m - otlp: - keep_identifying_resource_attributes: true - promote_resource_attributes: - - service.instance.id - - service.name - - service.namespace - - service.version - - cloud.availability_zone - - cloud.region - - deployment.environment.name - - k8s.cluster.name - - k8s.container.name - - k8s.cronjob.name - - k8s.daemonset.name - - k8s.deployment.name - - k8s.job.name - - k8s.namespace.name - - k8s.node.name - - k8s.pod.name - - k8s.replicaset.name - - k8s.statefulset.name - - container.name - - host.name - - postgresql.database.name - - postgresql.schema.name - - postgresql.table.name - - postgresql.index.name - rule_files: - - /etc/config/recording_rules.yml - - /etc/config/alerting_rules.yml - - /etc/config/rules - - /etc/config/alerts - scrape_configs: - - job_name: prometheus - static_configs: - - targets: - - localhost:9090 - - bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token - job_name: kubernetes-apiservers - kubernetes_sd_configs: - - role: endpoints - relabel_configs: - - action: keep - regex: default;kubernetes;https - source_labels: - - __meta_kubernetes_namespace - - __meta_kubernetes_service_name - - __meta_kubernetes_endpoint_port_name - scheme: https - tls_config: - ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - - bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token - job_name: kubernetes-nodes - kubernetes_sd_configs: - - role: node - relabel_configs: - - action: labelmap - regex: __meta_kubernetes_node_label_(.+) - - replacement: kubernetes.default.svc:443 - target_label: __address__ - - regex: (.+) - replacement: /api/v1/nodes/$1/proxy/metrics - source_labels: - - __meta_kubernetes_node_name - target_label: __metrics_path__ - scheme: https - tls_config: - ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - - bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token - job_name: kubernetes-nodes-cadvisor - kubernetes_sd_configs: - - role: node - relabel_configs: - - action: labelmap - regex: __meta_kubernetes_node_label_(.+) - - replacement: kubernetes.default.svc:443 - target_label: __address__ - - regex: (.+) - replacement: /api/v1/nodes/$1/proxy/metrics/cadvisor - source_labels: - - __meta_kubernetes_node_name - target_label: __metrics_path__ - scheme: https - tls_config: - ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - - honor_labels: true - job_name: kubernetes-service-endpoints - kubernetes_sd_configs: - - role: endpoints - relabel_configs: - - action: keep - regex: true - source_labels: - - __meta_kubernetes_service_annotation_prometheus_io_scrape - - action: drop - regex: true - source_labels: - - __meta_kubernetes_service_annotation_prometheus_io_scrape_slow - - action: replace - regex: (https?) - source_labels: - - __meta_kubernetes_service_annotation_prometheus_io_scheme - target_label: __scheme__ - - action: replace - regex: (.+) - source_labels: - - __meta_kubernetes_service_annotation_prometheus_io_path - target_label: __metrics_path__ - - action: replace - regex: (.+?)(?::\d+)?;(\d+) - replacement: $1:$2 - source_labels: - - __address__ - - __meta_kubernetes_service_annotation_prometheus_io_port - target_label: __address__ - - action: labelmap - regex: __meta_kubernetes_service_annotation_prometheus_io_param_(.+) - replacement: __param_$1 - - action: labelmap - regex: __meta_kubernetes_service_label_(.+) - - action: replace - source_labels: - - __meta_kubernetes_namespace - target_label: namespace - - action: replace - source_labels: - - __meta_kubernetes_service_name - target_label: service - - action: replace - source_labels: - - __meta_kubernetes_pod_node_name - target_label: node - - honor_labels: true - job_name: kubernetes-service-endpoints-slow - kubernetes_sd_configs: - - role: endpoints - relabel_configs: - - action: keep - regex: true - source_labels: - - __meta_kubernetes_service_annotation_prometheus_io_scrape_slow - - action: replace - regex: (https?) - source_labels: - - __meta_kubernetes_service_annotation_prometheus_io_scheme - target_label: __scheme__ - - action: replace - regex: (.+) - source_labels: - - __meta_kubernetes_service_annotation_prometheus_io_path - target_label: __metrics_path__ - - action: replace - regex: (.+?)(?::\d+)?;(\d+) - replacement: $1:$2 - source_labels: - - __address__ - - __meta_kubernetes_service_annotation_prometheus_io_port - target_label: __address__ - - action: labelmap - regex: __meta_kubernetes_service_annotation_prometheus_io_param_(.+) - replacement: __param_$1 - - action: labelmap - regex: __meta_kubernetes_service_label_(.+) - - action: replace - source_labels: - - __meta_kubernetes_namespace - target_label: namespace - - action: replace - source_labels: - - __meta_kubernetes_service_name - target_label: service - - action: replace - source_labels: - - __meta_kubernetes_pod_node_name - target_label: node - scrape_interval: 5m - scrape_timeout: 30s - - honor_labels: true - job_name: prometheus-pushgateway - kubernetes_sd_configs: - - role: service - relabel_configs: - - action: keep - regex: pushgateway - source_labels: - - __meta_kubernetes_service_annotation_prometheus_io_probe - - honor_labels: true - job_name: kubernetes-services - kubernetes_sd_configs: - - role: service - metrics_path: /probe - params: - module: - - http_2xx - relabel_configs: - - action: keep - regex: true - source_labels: - - __meta_kubernetes_service_annotation_prometheus_io_probe - - source_labels: - - __address__ - target_label: __param_target - - replacement: blackbox - target_label: __address__ - - source_labels: - - __param_target - target_label: instance - - action: labelmap - regex: __meta_kubernetes_service_label_(.+) - - source_labels: - - __meta_kubernetes_namespace - target_label: namespace - - source_labels: - - __meta_kubernetes_service_name - target_label: service - - honor_labels: true - job_name: kubernetes-pods - kubernetes_sd_configs: - - role: pod - relabel_configs: - - action: keep - regex: true - source_labels: - - __meta_kubernetes_pod_annotation_prometheus_io_scrape - - action: drop - regex: true - source_labels: - - __meta_kubernetes_pod_annotation_prometheus_io_scrape_slow - - action: replace - regex: (https?) - source_labels: - - __meta_kubernetes_pod_annotation_prometheus_io_scheme - target_label: __scheme__ - - action: replace - regex: (.+) - source_labels: - - __meta_kubernetes_pod_annotation_prometheus_io_path - target_label: __metrics_path__ - - action: replace - regex: (\d+);(([A-Fa-f0-9]{1,4}::?){1,7}[A-Fa-f0-9]{1,4}) - replacement: '[$2]:$1' - source_labels: - - __meta_kubernetes_pod_annotation_prometheus_io_port - - __meta_kubernetes_pod_ip - target_label: __address__ - - action: replace - regex: (\d+);((([0-9]+?)(\.|$)){4}) - replacement: $2:$1 - source_labels: - - __meta_kubernetes_pod_annotation_prometheus_io_port - - __meta_kubernetes_pod_ip - target_label: __address__ - - action: labelmap - regex: __meta_kubernetes_pod_annotation_prometheus_io_param_(.+) - replacement: __param_$1 - - action: labelmap - regex: __meta_kubernetes_pod_label_(.+) - - action: replace - source_labels: - - __meta_kubernetes_namespace - target_label: namespace - - action: replace - source_labels: - - __meta_kubernetes_pod_name - target_label: pod - - action: drop - regex: Pending|Succeeded|Failed|Completed - source_labels: - - __meta_kubernetes_pod_phase - - action: replace - source_labels: - - __meta_kubernetes_pod_node_name - target_label: node - - honor_labels: true - job_name: kubernetes-pods-slow - kubernetes_sd_configs: - - role: pod - relabel_configs: - - action: keep - regex: true - source_labels: - - __meta_kubernetes_pod_annotation_prometheus_io_scrape_slow - - action: replace - regex: (https?) - source_labels: - - __meta_kubernetes_pod_annotation_prometheus_io_scheme - target_label: __scheme__ - - action: replace - regex: (.+) - source_labels: - - __meta_kubernetes_pod_annotation_prometheus_io_path - target_label: __metrics_path__ - - action: replace - regex: (\d+);(([A-Fa-f0-9]{1,4}::?){1,7}[A-Fa-f0-9]{1,4}) - replacement: '[$2]:$1' - source_labels: - - __meta_kubernetes_pod_annotation_prometheus_io_port - - __meta_kubernetes_pod_ip - target_label: __address__ - - action: replace - regex: (\d+);((([0-9]+?)(\.|$)){4}) - replacement: $2:$1 - source_labels: - - __meta_kubernetes_pod_annotation_prometheus_io_port - - __meta_kubernetes_pod_ip - target_label: __address__ - - action: labelmap - regex: __meta_kubernetes_pod_annotation_prometheus_io_param_(.+) - replacement: __param_$1 - - action: labelmap - regex: __meta_kubernetes_pod_label_(.+) - - action: replace - source_labels: - - __meta_kubernetes_namespace - target_label: namespace - - action: replace - source_labels: - - __meta_kubernetes_pod_name - target_label: pod - - action: drop - regex: Pending|Succeeded|Failed|Completed - source_labels: - - __meta_kubernetes_pod_phase - - action: replace - source_labels: - - __meta_kubernetes_pod_node_name - target_label: node - scrape_interval: 5m - scrape_timeout: 30s - recording_rules.yml: | - {} - rules: | - {} diff --git a/charts/opentelemetry-demo/examples/collector-as-daemonset/values.yaml b/charts/opentelemetry-demo/examples/collector-as-daemonset/values.yaml deleted file mode 100644 index 7e74eac919..0000000000 --- a/charts/opentelemetry-demo/examples/collector-as-daemonset/values.yaml +++ /dev/null @@ -1,7 +0,0 @@ -default: - envOverrides: - - name: OTEL_COLLECTOR_NAME - value: $(OTEL_K8S_NODE_NAME) - -opentelemetry-collector: - mode: daemonset diff --git a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/flagd-config.yaml b/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/flagd-config.yaml deleted file mode 100644 index 1a64e1f8c3..0000000000 --- a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/flagd-config.yaml +++ /dev/null @@ -1,127 +0,0 @@ ---- -# Source: opentelemetry-demo/templates/flagd-config.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: flagd-config - namespace: default - labels: - helm.sh/chart: opentelemetry-demo-0.38.4 - - - app.kubernetes.io/version: "2.1.3" - app.kubernetes.io/part-of: opentelemetry-demo - app.kubernetes.io/managed-by: Helm -data: - - demo.flagd.json: | - { - "$schema": "https://flagd.dev/schema/v0/flags.json", - "flags": { - "productCatalogFailure": { - "description": "Fail product catalog service on a specific product", - "state": "ENABLED", - "variants": { - "on": true, - "off": false - }, - "defaultVariant": "off" - }, - "recommendationCacheFailure": { - "description": "Fail recommendation service cache", - "state": "ENABLED", - "variants": { - "on": true, - "off": false - }, - "defaultVariant": "off" - }, - "adManualGc": { - "description": "Triggers full manual garbage collections in the ad service", - "state": "ENABLED", - "variants": { - "on": true, - "off": false - }, - "defaultVariant": "off" - }, - "adHighCpu": { - "description": "Triggers high cpu load in the ad service", - "state": "ENABLED", - "variants": { - "on": true, - "off": false - }, - "defaultVariant": "off" - }, - "adFailure": { - "description": "Fail ad service", - "state": "ENABLED", - "variants": { - "on": true, - "off": false - }, - "defaultVariant": "off" - }, - "kafkaQueueProblems": { - "description": "Overloads Kafka queue while simultaneously introducing a consumer side delay leading to a lag spike", - "state": "ENABLED", - "variants": { - "on": 100, - "off": 0 - }, - "defaultVariant": "off" - }, - "cartFailure": { - "description": "Fail cart service", - "state": "ENABLED", - "variants": { - "on": true, - "off": false - }, - "defaultVariant": "off" - }, - "paymentFailure": { - "description": "Fail payment service charge requests n%", - "state": "ENABLED", - "variants": { - "100%": 1, - "90%": 0.95, - "75%": 0.75, - "50%": 0.5, - "25%": 0.25, - "10%": 0.1, - "off": 0 - }, - "defaultVariant": "off" - }, - "paymentUnreachable": { - "description": "Payment service is unavailable", - "state": "ENABLED", - "variants": { - "on": true, - "off": false - }, - "defaultVariant": "off" - }, - "loadGeneratorFloodHomepage": { - "description": "Flood the frontend with a large amount of requests.", - "state": "ENABLED", - "variants": { - "on": 100, - "off": 0 - }, - "defaultVariant": "off" - }, - "imageSlowLoad": { - "description": "slow loading images in the frontend", - "state": "ENABLED", - "variants": { - "10sec": 10000, - "5sec": 5000, - "off": 0 - }, - "defaultVariant": "off" - } - } - } diff --git a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/grafana/clusterrole.yaml b/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/grafana/clusterrole.yaml deleted file mode 100644 index 7a0453e21b..0000000000 --- a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/grafana/clusterrole.yaml +++ /dev/null @@ -1,15 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/grafana/templates/clusterrole.yaml -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - labels: - helm.sh/chart: grafana-10.1.2 - app.kubernetes.io/name: grafana - app.kubernetes.io/instance: example - app.kubernetes.io/version: "12.2.0" - name: grafana-clusterrole -rules: - - apiGroups: [""] # "" indicates the core API group - resources: ["configmaps", "secrets"] - verbs: ["get", "watch", "list"] diff --git a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/grafana/clusterrolebinding.yaml b/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/grafana/clusterrolebinding.yaml deleted file mode 100644 index c120f1a2e6..0000000000 --- a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/grafana/clusterrolebinding.yaml +++ /dev/null @@ -1,19 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/grafana/templates/clusterrolebinding.yaml -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: grafana-clusterrolebinding - labels: - helm.sh/chart: grafana-10.1.2 - app.kubernetes.io/name: grafana - app.kubernetes.io/instance: example - app.kubernetes.io/version: "12.2.0" -subjects: - - kind: ServiceAccount - name: grafana - namespace: default -roleRef: - kind: ClusterRole - name: grafana-clusterrole - apiGroup: rbac.authorization.k8s.io diff --git a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/grafana/configmap-dashboard-provider.yaml b/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/grafana/configmap-dashboard-provider.yaml deleted file mode 100644 index 509d5af58a..0000000000 --- a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/grafana/configmap-dashboard-provider.yaml +++ /dev/null @@ -1,27 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/grafana/templates/configmap-dashboard-provider.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - labels: - helm.sh/chart: grafana-10.1.2 - app.kubernetes.io/name: grafana - app.kubernetes.io/instance: example - app.kubernetes.io/version: "12.2.0" - name: grafana-config-dashboards - namespace: default -data: - provider.yaml: |- - apiVersion: 1 - providers: - - name: 'sidecarProvider' - orgId: 1 - folder: '' - folderUid: '' - type: file - disableDeletion: false - allowUiUpdates: false - updateIntervalSeconds: 30 - options: - foldersFromFilesStructure: false - path: /tmp/dashboards diff --git a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/grafana/configmap.yaml b/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/grafana/configmap.yaml deleted file mode 100644 index b1ce3ed3cb..0000000000 --- a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/grafana/configmap.yaml +++ /dev/null @@ -1,37 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/grafana/templates/configmap.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: grafana - namespace: default - labels: - helm.sh/chart: grafana-10.1.2 - app.kubernetes.io/name: grafana - app.kubernetes.io/instance: example - app.kubernetes.io/version: "12.2.0" -data: - - plugins: grafana-opensearch-datasource - grafana.ini: | - [analytics] - check_for_updates = true - [auth] - disable_login_form = true - [auth.anonymous] - enabled = true - org_name = Main Org. - org_role = Admin - [grafana_net] - url = https://grafana.net - [log] - mode = console - [paths] - data = /var/lib/grafana/ - logs = /var/log/grafana - plugins = /var/lib/grafana/plugins - provisioning = /etc/grafana/provisioning - [server] - domain = '' - root_url = %(protocol)s://%(domain)s:%(http_port)s/grafana - serve_from_sub_path = true diff --git a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/grafana/deployment.yaml b/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/grafana/deployment.yaml deleted file mode 100644 index c563059b95..0000000000 --- a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/grafana/deployment.yaml +++ /dev/null @@ -1,265 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/grafana/templates/deployment.yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: grafana - namespace: default - labels: - helm.sh/chart: grafana-10.1.2 - app.kubernetes.io/name: grafana - app.kubernetes.io/instance: example - app.kubernetes.io/version: "12.2.0" -spec: - replicas: 1 - revisionHistoryLimit: 10 - selector: - matchLabels: - app.kubernetes.io/name: grafana - app.kubernetes.io/instance: example - strategy: - type: RollingUpdate - template: - metadata: - labels: - helm.sh/chart: grafana-10.1.2 - app.kubernetes.io/name: grafana - app.kubernetes.io/instance: example - app.kubernetes.io/version: "12.2.0" - 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.2.0" - 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: {} diff --git a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/grafana/role.yaml b/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/grafana/role.yaml deleted file mode 100644 index 79b79a049a..0000000000 --- a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/grafana/role.yaml +++ /dev/null @@ -1,13 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/grafana/templates/role.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: grafana - namespace: default - labels: - helm.sh/chart: grafana-10.1.2 - app.kubernetes.io/name: grafana - app.kubernetes.io/instance: example - app.kubernetes.io/version: "12.2.0" -rules: [] diff --git a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/grafana/rolebinding.yaml b/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/grafana/rolebinding.yaml deleted file mode 100644 index 819bd5ae36..0000000000 --- a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/grafana/rolebinding.yaml +++ /dev/null @@ -1,20 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/grafana/templates/rolebinding.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: grafana - namespace: default - labels: - helm.sh/chart: grafana-10.1.2 - app.kubernetes.io/name: grafana - app.kubernetes.io/instance: example - app.kubernetes.io/version: "12.2.0" -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: grafana -subjects: -- kind: ServiceAccount - name: grafana - namespace: default diff --git a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/grafana/secret.yaml b/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/grafana/secret.yaml deleted file mode 100644 index c5b194c731..0000000000 --- a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/grafana/secret.yaml +++ /dev/null @@ -1,19 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/grafana/templates/secret.yaml -apiVersion: v1 -kind: Secret -metadata: - name: grafana - namespace: default - labels: - helm.sh/chart: grafana-10.1.2 - app.kubernetes.io/name: grafana - app.kubernetes.io/instance: example - app.kubernetes.io/version: "12.2.0" - app.kubernetes.io/component: admin-secret -type: Opaque -data: - - admin-user: "YWRtaW4=" - admin-password: "YWRtaW4=" - ldap-toml: "" diff --git a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/grafana/service.yaml b/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/grafana/service.yaml deleted file mode 100644 index b88ba1c860..0000000000 --- a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/grafana/service.yaml +++ /dev/null @@ -1,22 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/grafana/templates/service.yaml -apiVersion: v1 -kind: Service -metadata: - name: grafana - namespace: default - labels: - helm.sh/chart: grafana-10.1.2 - app.kubernetes.io/name: grafana - app.kubernetes.io/instance: example - app.kubernetes.io/version: "12.2.0" -spec: - type: ClusterIP - ports: - - name: service - port: 80 - protocol: TCP - targetPort: grafana - selector: - app.kubernetes.io/name: grafana - app.kubernetes.io/instance: example diff --git a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/grafana/serviceaccount.yaml b/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/grafana/serviceaccount.yaml deleted file mode 100644 index 865cca5961..0000000000 --- a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/grafana/serviceaccount.yaml +++ /dev/null @@ -1,13 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/grafana/templates/serviceaccount.yaml -apiVersion: v1 -kind: ServiceAccount -automountServiceAccountToken: false -metadata: - labels: - helm.sh/chart: grafana-10.1.2 - app.kubernetes.io/name: grafana - app.kubernetes.io/instance: example - app.kubernetes.io/version: "12.2.0" - name: grafana - namespace: default diff --git a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/jaeger/allinone-agent-svc.yaml b/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/jaeger/allinone-agent-svc.yaml deleted file mode 100644 index b6f89cc41b..0000000000 --- a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/jaeger/allinone-agent-svc.yaml +++ /dev/null @@ -1,35 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/jaeger/templates/allinone-agent-svc.yaml -apiVersion: v1 -kind: Service -metadata: - name: jaeger-agent - labels: - helm.sh/chart: jaeger-3.4.1 - app.kubernetes.io/name: jaeger - app.kubernetes.io/instance: example - app.kubernetes.io/version: "1.53.0" - app.kubernetes.io/managed-by: Helm - 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: example - app.kubernetes.io/component: all-in-one diff --git a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/jaeger/allinone-collector-svc.yaml b/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/jaeger/allinone-collector-svc.yaml deleted file mode 100644 index 91e7aa5af0..0000000000 --- a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/jaeger/allinone-collector-svc.yaml +++ /dev/null @@ -1,43 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/jaeger/templates/allinone-collector-svc.yaml -apiVersion: v1 -kind: Service -metadata: - name: jaeger-collector - labels: - helm.sh/chart: jaeger-3.4.1 - app.kubernetes.io/name: jaeger - app.kubernetes.io/instance: example - app.kubernetes.io/version: "1.53.0" - app.kubernetes.io/managed-by: Helm - 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: example - app.kubernetes.io/component: all-in-one diff --git a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/jaeger/allinone-deploy.yaml b/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/jaeger/allinone-deploy.yaml deleted file mode 100644 index e9d977f9ad..0000000000 --- a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/jaeger/allinone-deploy.yaml +++ /dev/null @@ -1,112 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/jaeger/templates/allinone-deploy.yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: jaeger - labels: - helm.sh/chart: jaeger-3.4.1 - app.kubernetes.io/name: jaeger - app.kubernetes.io/instance: example - app.kubernetes.io/version: "1.53.0" - app.kubernetes.io/managed-by: Helm - 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: example - app.kubernetes.io/component: all-in-one - template: - metadata: - labels: - app.kubernetes.io/name: jaeger - app.kubernetes.io/instance: example - 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: diff --git a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/jaeger/allinone-query-svc.yaml b/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/jaeger/allinone-query-svc.yaml deleted file mode 100644 index 62613fd8ee..0000000000 --- a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/jaeger/allinone-query-svc.yaml +++ /dev/null @@ -1,26 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/jaeger/templates/allinone-query-svc.yaml -apiVersion: v1 -kind: Service -metadata: - name: jaeger-query - labels: - helm.sh/chart: jaeger-3.4.1 - app.kubernetes.io/name: jaeger - app.kubernetes.io/instance: example - app.kubernetes.io/version: "1.53.0" - app.kubernetes.io/managed-by: Helm - 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: example - app.kubernetes.io/component: all-in-one diff --git a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/jaeger/allinone-sa.yaml b/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/jaeger/allinone-sa.yaml deleted file mode 100644 index 8412587f4a..0000000000 --- a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/jaeger/allinone-sa.yaml +++ /dev/null @@ -1,14 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/jaeger/templates/allinone-sa.yaml -apiVersion: v1 -kind: ServiceAccount -metadata: - name: jaeger - labels: - helm.sh/chart: jaeger-3.4.1 - app.kubernetes.io/name: jaeger - app.kubernetes.io/instance: example - app.kubernetes.io/version: "1.53.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: all-in-one -automountServiceAccountToken: true diff --git a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/opensearch/configmap.yaml b/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/opensearch/configmap.yaml deleted file mode 100644 index 566d68cd04..0000000000 --- a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/opensearch/configmap.yaml +++ /dev/null @@ -1,65 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/opensearch/templates/configmap.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: opensearch-config - labels: - helm.sh/chart: opensearch-3.2.1 - app.kubernetes.io/name: opensearch - app.kubernetes.io/instance: example - app.kubernetes.io/version: "3.2.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: opensearch -data: - opensearch.yml: | - cluster.name: opensearch-cluster - - # Bind to all interfaces because we don't know what IP address Docker will assign to us. - network.host: 0.0.0.0 - - # Setting network.host to a non-loopback address enables the annoying bootstrap checks. "Single-node" mode disables them again. - # Implicitly done if ".singleNode" is set to "true". - # discovery.type: single-node - - # Start OpenSearch Security Demo Configuration - # WARNING: revise all the lines below before you go into production - # plugins: - # security: - # ssl: - # transport: - # pemcert_filepath: esnode.pem - # pemkey_filepath: esnode-key.pem - # pemtrustedcas_filepath: root-ca.pem - # enforce_hostname_verification: false - # http: - # enabled: true - # pemcert_filepath: esnode.pem - # pemkey_filepath: esnode-key.pem - # pemtrustedcas_filepath: root-ca.pem - # allow_unsafe_democertificates: true - # allow_default_init_securityindex: true - # authcz: - # admin_dn: - # - CN=kirk,OU=client,O=client,L=test,C=de - # audit.type: internal_opensearch - # enable_snapshot_restore_privilege: true - # check_snapshot_restore_write_privileges: true - # restapi: - # roles_enabled: ["all_access", "security_rest_api_access"] - # system_indices: - # enabled: true - # indices: - # [ - # ".opendistro-alerting-config", - # ".opendistro-alerting-alert*", - # ".opendistro-anomaly-results*", - # ".opendistro-anomaly-detector*", - # ".opendistro-anomaly-checkpoints", - # ".opendistro-anomaly-detection-state", - # ".opendistro-reports-*", - # ".opendistro-notifications-*", - # ".opendistro-notebooks", - # ".opendistro-asynchronous-search-response*", - # ] - ######## End OpenSearch Security Demo Configuration ######## diff --git a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/opensearch/poddisruptionbudget.yaml b/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/opensearch/poddisruptionbudget.yaml deleted file mode 100644 index 9fb557fddc..0000000000 --- a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/opensearch/poddisruptionbudget.yaml +++ /dev/null @@ -1,19 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/opensearch/templates/poddisruptionbudget.yaml -apiVersion: policy/v1 -kind: PodDisruptionBudget -metadata: - name: "opensearch-pdb" - labels: - helm.sh/chart: opensearch-3.2.1 - app.kubernetes.io/name: opensearch - app.kubernetes.io/instance: example - app.kubernetes.io/version: "3.2.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: opensearch -spec: - maxUnavailable: 1 - selector: - matchLabels: - app.kubernetes.io/name: opensearch - app.kubernetes.io/instance: example diff --git a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/opensearch/service.yaml b/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/opensearch/service.yaml deleted file mode 100644 index 50512c48cf..0000000000 --- a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/opensearch/service.yaml +++ /dev/null @@ -1,59 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/opensearch/templates/service.yaml -kind: Service -apiVersion: v1 -metadata: - name: opensearch - labels: - helm.sh/chart: opensearch-3.2.1 - app.kubernetes.io/name: opensearch - app.kubernetes.io/instance: example - app.kubernetes.io/version: "3.2.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: opensearch - annotations: - {} -spec: - type: ClusterIP - selector: - app.kubernetes.io/name: opensearch - app.kubernetes.io/instance: example - 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: - helm.sh/chart: opensearch-3.2.1 - app.kubernetes.io/name: opensearch - app.kubernetes.io/instance: example - app.kubernetes.io/version: "3.2.0" - app.kubernetes.io/managed-by: Helm - 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: example - ports: - - name: http - port: 9200 - - name: transport - port: 9300 - - name: metrics - port: 9600 diff --git a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/opensearch/statefulset.yaml b/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/opensearch/statefulset.yaml deleted file mode 100644 index ba44299d5b..0000000000 --- a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/opensearch/statefulset.yaml +++ /dev/null @@ -1,154 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/opensearch/templates/statefulset.yaml -apiVersion: apps/v1 -kind: StatefulSet -metadata: - name: opensearch - labels: - helm.sh/chart: opensearch-3.2.1 - app.kubernetes.io/name: opensearch - app.kubernetes.io/instance: example - app.kubernetes.io/version: "3.2.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: opensearch - annotations: - majorVersion: "3" -spec: - serviceName: opensearch-headless - selector: - matchLabels: - app.kubernetes.io/name: opensearch - app.kubernetes.io/instance: example - replicas: 1 - podManagementPolicy: Parallel - updateStrategy: - type: RollingUpdate - template: - metadata: - name: "opensearch" - labels: - helm.sh/chart: opensearch-3.2.1 - app.kubernetes.io/name: opensearch - app.kubernetes.io/instance: example - app.kubernetes.io/version: "3.2.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: opensearch - annotations: - configchecksum: 52cb483949e5d3223764abb58188425e1216ead39156a9d761f3ab1a8b9ae83 - 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: - - example - - 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 diff --git a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/opentelemetry-collector/clusterrole.yaml b/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/opentelemetry-collector/clusterrole.yaml deleted file mode 100644 index c468710781..0000000000 --- a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/opentelemetry-collector/clusterrole.yaml +++ /dev/null @@ -1,24 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/opentelemetry-collector/templates/clusterrole.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: otel-collector - labels: - helm.sh/chart: opentelemetry-collector-0.134.0 - app.kubernetes.io/name: opentelemetry-collector - app.kubernetes.io/instance: example - app.kubernetes.io/version: "0.135.0" - app.kubernetes.io/managed-by: Helm - 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"] diff --git a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/opentelemetry-collector/clusterrolebinding.yaml b/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/opentelemetry-collector/clusterrolebinding.yaml deleted file mode 100644 index bad505de75..0000000000 --- a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/opentelemetry-collector/clusterrolebinding.yaml +++ /dev/null @@ -1,22 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/opentelemetry-collector/templates/clusterrolebinding.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: otel-collector - labels: - helm.sh/chart: opentelemetry-collector-0.134.0 - app.kubernetes.io/name: opentelemetry-collector - app.kubernetes.io/instance: example - app.kubernetes.io/version: "0.135.0" - app.kubernetes.io/managed-by: Helm - 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: default diff --git a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/opentelemetry-collector/configmap.yaml b/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/opentelemetry-collector/configmap.yaml deleted file mode 100644 index b6c37c545b..0000000000 --- a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/opentelemetry-collector/configmap.yaml +++ /dev/null @@ -1,214 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/opentelemetry-collector/templates/configmap.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: otel-collector - namespace: default - labels: - helm.sh/chart: opentelemetry-collector-0.134.0 - app.kubernetes.io/name: opentelemetry-collector - app.kubernetes.io/instance: example - app.kubernetes.io/version: "0.135.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/part-of: opentelemetry-collector - app.kubernetes.io/component: standalone-collector -data: - relay: | - connectors: - spanmetrics: {} - exporters: - debug: {} - opensearch: - http: - endpoint: http://opensearch:9200 - tls: - insecure: true - logs_index: otel-logs - logs_index_time_format: yyyy-MM-dd - otlp: - endpoint: jaeger-collector:4317 - tls: - insecure: true - otlphttp/prometheus: - endpoint: http://prometheus:9090/api/v1/otlp - tls: - insecure: true - extensions: - health_check: - endpoint: ${env:MY_POD_IP}:13133 - processors: - attributes: - actions: - - action: insert - key: app.eng.team - value: ring - include: - match_type: strict - services: - - frontend-proxy - batch: {} - k8sattributes: - extract: - metadata: - - k8s.namespace.name - - k8s.deployment.name - - k8s.statefulset.name - - k8s.daemonset.name - - k8s.cronjob.name - - k8s.job.name - - k8s.node.name - - k8s.pod.name - - k8s.pod.uid - - k8s.pod.start_time - passthrough: false - pod_association: - - sources: - - from: resource_attribute - name: k8s.pod.ip - - sources: - - from: resource_attribute - name: k8s.pod.uid - - sources: - - from: connection - memory_limiter: - check_interval: 5s - limit_percentage: 80 - spike_limit_percentage: 25 - resource: - attributes: - - action: insert - from_attribute: k8s.pod.uid - key: service.instance.id - resourcedetection: - detectors: - - env - - system - transform: - error_mode: ignore - trace_statements: - - context: span - statements: - - replace_pattern(name, "\\?.*", "") - - replace_match(name, "GET /api/products/*", "GET /api/products/{productId}") - receivers: - httpcheck/frontend-proxy: - targets: - - endpoint: http://frontend-proxy:8080 - jaeger: - protocols: - grpc: - endpoint: ${env:MY_POD_IP}:14250 - thrift_compact: - endpoint: ${env:MY_POD_IP}:6831 - thrift_http: - endpoint: ${env:MY_POD_IP}:14268 - nginx: - collection_interval: 10s - endpoint: http://image-provider:8081/status - otlp: - protocols: - grpc: - endpoint: ${env:MY_POD_IP}:4317 - http: - cors: - allowed_origins: - - http://* - - https://* - endpoint: ${env:MY_POD_IP}:4318 - postgresql: - endpoint: postgresql:5432 - metrics: - postgresql.blks_hit: - enabled: true - postgresql.blks_read: - enabled: true - postgresql.deadlocks: - enabled: true - postgresql.tup_deleted: - enabled: true - postgresql.tup_fetched: - enabled: true - postgresql.tup_inserted: - enabled: true - postgresql.tup_returned: - enabled: true - postgresql.tup_updated: - enabled: true - password: otel - tls: - insecure: true - username: root - prometheus: - config: - scrape_configs: - - job_name: opentelemetry-collector - scrape_interval: 10s - static_configs: - - targets: - - ${env:MY_POD_IP}:8888 - redis: - collection_interval: 10s - endpoint: valkey-cart:6379 - username: valkey - zipkin: - endpoint: ${env:MY_POD_IP}:9411 - service: - extensions: - - health_check - pipelines: - logs: - exporters: - - opensearch - - debug - processors: - - k8sattributes - - memory_limiter - - resourcedetection - - resource - - batch - receivers: - - otlp - metrics: - exporters: - - otlphttp/prometheus - - debug - processors: - - k8sattributes - - memory_limiter - - resourcedetection - - resource - - batch - receivers: - - httpcheck/frontend-proxy - - nginx - - otlp - - postgresql - - redis - - spanmetrics - traces: - exporters: - - otlp - - debug - - spanmetrics - processors: - - k8sattributes - - memory_limiter - - attributes - - spanmetrics - - batch - receivers: - - otlp - - jaeger - - zipkin - telemetry: - metrics: - level: detailed - readers: - - periodic: - exporter: - otlp: - endpoint: otel-collector:4318 - protocol: http/protobuf - interval: 10000 - timeout: 5000 diff --git a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/opentelemetry-collector/deployment.yaml b/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/opentelemetry-collector/deployment.yaml deleted file mode 100644 index f0a5d7d93d..0000000000 --- a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/opentelemetry-collector/deployment.yaml +++ /dev/null @@ -1,103 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/opentelemetry-collector/templates/deployment.yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: otel-collector - namespace: default - labels: - helm.sh/chart: opentelemetry-collector-0.134.0 - app.kubernetes.io/name: opentelemetry-collector - app.kubernetes.io/instance: example - app.kubernetes.io/version: "0.135.0" - app.kubernetes.io/managed-by: Helm - 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: example - component: standalone-collector - strategy: - type: RollingUpdate - template: - metadata: - annotations: - checksum/config: 6c0e561907cd06a67fc0e64d31050ecc2aeec0f9df6c2ba8c0218856ebe0bfe6 - opentelemetry_community_demo: "true" - prometheus.io/scrape: "true" - labels: - app.kubernetes.io/name: opentelemetry-collector - app.kubernetes.io/instance: example - 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 diff --git a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/opentelemetry-collector/service.yaml b/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/opentelemetry-collector/service.yaml deleted file mode 100644 index 0da821f866..0000000000 --- a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/opentelemetry-collector/service.yaml +++ /dev/null @@ -1,54 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/opentelemetry-collector/templates/service.yaml -apiVersion: v1 -kind: Service -metadata: - name: otel-collector - namespace: default - labels: - helm.sh/chart: opentelemetry-collector-0.134.0 - app.kubernetes.io/name: opentelemetry-collector - app.kubernetes.io/instance: example - app.kubernetes.io/version: "0.135.0" - app.kubernetes.io/managed-by: Helm - 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: example - component: standalone-collector - internalTrafficPolicy: Cluster diff --git a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/opentelemetry-collector/serviceaccount.yaml b/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/opentelemetry-collector/serviceaccount.yaml deleted file mode 100644 index 675701aa20..0000000000 --- a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/opentelemetry-collector/serviceaccount.yaml +++ /dev/null @@ -1,15 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/opentelemetry-collector/templates/serviceaccount.yaml -apiVersion: v1 -kind: ServiceAccount -metadata: - name: otel-collector - namespace: default - labels: - helm.sh/chart: opentelemetry-collector-0.134.0 - app.kubernetes.io/name: opentelemetry-collector - app.kubernetes.io/instance: example - app.kubernetes.io/version: "0.135.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/part-of: opentelemetry-collector - app.kubernetes.io/component: standalone-collector diff --git a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/product-catalog-products.yaml b/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/product-catalog-products.yaml deleted file mode 100644 index 047185144c..0000000000 --- a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/product-catalog-products.yaml +++ /dev/null @@ -1,167 +0,0 @@ ---- -# Source: opentelemetry-demo/templates/product-catalog-products.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: product-catalog-products - namespace: default - labels: - helm.sh/chart: opentelemetry-demo-0.38.4 - - - app.kubernetes.io/version: "2.1.3" - app.kubernetes.io/part-of: opentelemetry-demo - app.kubernetes.io/managed-by: Helm -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" - ] - } - ] - } diff --git a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/prometheus/clusterrole.yaml b/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/prometheus/clusterrole.yaml deleted file mode 100644 index 885467b78d..0000000000 --- a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/prometheus/clusterrole.yaml +++ /dev/null @@ -1,50 +0,0 @@ ---- -# 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: example - app.kubernetes.io/version: v3.6.0 - helm.sh/chart: prometheus-27.39.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 diff --git a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/prometheus/clusterrolebinding.yaml b/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/prometheus/clusterrolebinding.yaml deleted file mode 100644 index 22632f317b..0000000000 --- a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/prometheus/clusterrolebinding.yaml +++ /dev/null @@ -1,21 +0,0 @@ ---- -# 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: example - app.kubernetes.io/version: v3.6.0 - helm.sh/chart: prometheus-27.39.0 - app.kubernetes.io/part-of: prometheus - name: prometheus -subjects: - - kind: ServiceAccount - name: prometheus - namespace: default -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: prometheus diff --git a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/prometheus/deploy.yaml b/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/prometheus/deploy.yaml deleted file mode 100644 index e0a9335dd6..0000000000 --- a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/prometheus/deploy.yaml +++ /dev/null @@ -1,95 +0,0 @@ ---- -# 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: example - app.kubernetes.io/version: v3.6.0 - helm.sh/chart: prometheus-27.39.0 - app.kubernetes.io/part-of: prometheus - name: prometheus - namespace: default -spec: - strategy: - type: Recreate - rollingUpdate: null - selector: - matchLabels: - app.kubernetes.io/component: server - app.kubernetes.io/name: prometheus - app.kubernetes.io/instance: example - replicas: 1 - revisionHistoryLimit: 10 - template: - metadata: - labels: - app.kubernetes.io/component: server - app.kubernetes.io/name: prometheus - app.kubernetes.io/instance: example - app.kubernetes.io/version: v3.6.0 - helm.sh/chart: prometheus-27.39.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: - {} diff --git a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/prometheus/service.yaml b/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/prometheus/service.yaml deleted file mode 100644 index e39e8b9efb..0000000000 --- a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/prometheus/service.yaml +++ /dev/null @@ -1,26 +0,0 @@ ---- -# 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: example - app.kubernetes.io/version: v3.6.0 - helm.sh/chart: prometheus-27.39.0 - app.kubernetes.io/part-of: prometheus - name: prometheus - namespace: default -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: example - sessionAffinity: None - type: "ClusterIP" diff --git a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/prometheus/serviceaccount.yaml b/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/prometheus/serviceaccount.yaml deleted file mode 100644 index 1713a0c7df..0000000000 --- a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/prometheus/serviceaccount.yaml +++ /dev/null @@ -1,16 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/prometheus/templates/serviceaccount.yaml -apiVersion: v1 -kind: ServiceAccount -metadata: - labels: - app.kubernetes.io/component: server - app.kubernetes.io/name: prometheus - app.kubernetes.io/instance: example - app.kubernetes.io/version: v3.6.0 - helm.sh/chart: prometheus-27.39.0 - app.kubernetes.io/part-of: prometheus - name: prometheus - namespace: default - annotations: - {} diff --git a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/serviceaccount.yaml b/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/serviceaccount.yaml deleted file mode 100644 index 64279d14a2..0000000000 --- a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/serviceaccount.yaml +++ /dev/null @@ -1,13 +0,0 @@ ---- -# Source: opentelemetry-demo/templates/serviceaccount.yaml -apiVersion: v1 -kind: ServiceAccount -metadata: - name: example - labels: - helm.sh/chart: opentelemetry-demo-0.38.4 - - - app.kubernetes.io/version: "2.1.3" - app.kubernetes.io/part-of: opentelemetry-demo - app.kubernetes.io/managed-by: Helm diff --git a/charts/opentelemetry-demo/examples/custom-environment-variables/values.yaml b/charts/opentelemetry-demo/examples/custom-environment-variables/values.yaml deleted file mode 100644 index b36cf3e9b0..0000000000 --- a/charts/opentelemetry-demo/examples/custom-environment-variables/values.yaml +++ /dev/null @@ -1,97 +0,0 @@ -default: - envOverrides: - - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.instance.id=$(OTEL_K8S_POD_UID),service.namespace=opentelemetry-demo,k8s.namespace.name=$(OTEL_K8S_NAMESPACE),k8s.node.name=$(OTEL_K8S_NODE_NAME),k8s.pod.name=$(OTEL_K8S_POD_NAME),app.eng.team=$(TEAM_NAME) - -components: - accounting: - envOverrides: - - name: TEAM_NAME - value: orion - - ad: - envOverrides: - - name: TEAM_NAME - value: helix - - cart: - envOverrides: - - name: TEAM_NAME - value: ring - - checkout: - envOverrides: - - name: TEAM_NAME - value: orion - - currency: - envOverrides: - - name: TEAM_NAME - value: orion - - email: - envOverrides: - - name: TEAM_NAME - value: orion - - fraud-detection: - envOverrides: - - name: TEAM_NAME - value: orion - - frontend: - envOverrides: - - name: TEAM_NAME - value: ring - - load-generator: - envOverrides: - - name: TEAM_NAME - value: ring - - payment: - envOverrides: - - name: TEAM_NAME - value: orion - - product-catalog: - envOverrides: - - name: TEAM_NAME - value: helix - - quote: - envOverrides: - - name: TEAM_NAME - value: orion - - recommendation: - envOverrides: - - name: TEAM_NAME - value: helix - - shipping: - envOverrides: - - name: TEAM_NAME - value: orion - -opentelemetry-collector: - config: - processors: - attributes: - include: - match_type: strict - services: - - frontend-proxy - actions: - - key: "app.eng.team" - value: "ring" - action: insert - service: - pipelines: - traces: - processors: - - memory_limiter - - attributes - - spanmetrics - - batch - diff --git a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/component.yaml b/charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/component.yaml similarity index 63% rename from charts/opentelemetry-demo/examples/custom-environment-variables/rendered/component.yaml rename to charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/component.yaml index e1be4f4890..231f4fdc2f 100644 --- a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/component.yaml +++ b/charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/component.yaml @@ -5,7 +5,7 @@ kind: Service metadata: name: ad labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: ad @@ -30,7 +30,7 @@ kind: Service metadata: name: cart labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: cart @@ -55,7 +55,7 @@ kind: Service metadata: name: checkout labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: checkout @@ -80,7 +80,7 @@ kind: Service metadata: name: currency labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: currency @@ -105,7 +105,7 @@ kind: Service metadata: name: email labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: email @@ -130,7 +130,7 @@ kind: Service metadata: name: flagd labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: flagd @@ -161,7 +161,7 @@ kind: Service metadata: name: frontend labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: frontend @@ -186,7 +186,7 @@ kind: Service metadata: name: frontend-proxy labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: frontend-proxy @@ -211,7 +211,7 @@ kind: Service metadata: name: image-provider labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: image-provider @@ -236,7 +236,7 @@ kind: Service metadata: name: kafka labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: kafka @@ -264,7 +264,7 @@ kind: Service metadata: name: load-generator labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: load-generator @@ -289,7 +289,7 @@ kind: Service metadata: name: payment labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: payment @@ -314,7 +314,7 @@ kind: Service metadata: name: postgresql labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: postgresql @@ -339,7 +339,7 @@ kind: Service metadata: name: product-catalog labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: product-catalog @@ -364,7 +364,7 @@ kind: Service metadata: name: quote labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: quote @@ -389,7 +389,7 @@ kind: Service metadata: name: recommendation labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: recommendation @@ -414,7 +414,7 @@ kind: Service metadata: name: shipping labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: shipping @@ -439,7 +439,7 @@ kind: Service metadata: name: valkey-cart labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: valkey-cart @@ -464,7 +464,7 @@ kind: Deployment metadata: name: accounting labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: accounting @@ -488,6 +488,10 @@ spec: app.kubernetes.io/component: accounting app.kubernetes.io/name: accounting + annotations: + resource.opentelemetry.io/service.name: accounting + resource.opentelemetry.io/service.namespace: opentelemetry-demo + resource.opentelemetry.io/service.owner: orion-team spec: serviceAccountName: example containers: @@ -499,23 +503,40 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - 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: TEAM_NAME - value: orion + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4318 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: http/protobuf - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.instance.id=$(OTEL_K8S_POD_UID),service.namespace=opentelemetry-demo,k8s.namespace.name=$(OTEL_K8S_NAMESPACE),k8s.node.name=$(OTEL_K8S_NODE_NAME),k8s.pod.name=$(OTEL_K8S_POD_NAME),app.eng.team=$(TEAM_NAME) + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 120Mi @@ -535,7 +556,7 @@ kind: Deployment metadata: name: ad labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: ad @@ -559,6 +580,10 @@ spec: app.kubernetes.io/component: ad app.kubernetes.io/name: ad + annotations: + resource.opentelemetry.io/service.name: ad + resource.opentelemetry.io/service.namespace: opentelemetry-demo + resource.opentelemetry.io/service.owner: helix-team spec: serviceAccountName: example containers: @@ -574,25 +599,42 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - 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: TEAM_NAME - value: helix + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4318 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: http/protobuf - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.instance.id=$(OTEL_K8S_POD_UID),service.namespace=opentelemetry-demo,k8s.namespace.name=$(OTEL_K8S_NAMESPACE),k8s.node.name=$(OTEL_K8S_NODE_NAME),k8s.pod.name=$(OTEL_K8S_POD_NAME),app.eng.team=$(TEAM_NAME) + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 300Mi @@ -605,7 +647,7 @@ kind: Deployment metadata: name: cart labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: cart @@ -629,6 +671,10 @@ spec: app.kubernetes.io/component: cart app.kubernetes.io/name: cart + annotations: + resource.opentelemetry.io/service.name: cart + resource.opentelemetry.io/service.namespace: opentelemetry-demo + resource.opentelemetry.io/service.owner: ring-team spec: serviceAccountName: example containers: @@ -644,11 +690,28 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: CART_PORT value: "8080" - name: ASPNETCORE_URLS @@ -659,12 +722,8 @@ spec: value: flagd - name: FLAGD_PORT value: "8013" - - name: OTEL_EXPORTER_OTLP_ENDPOINT - value: http://$(OTEL_COLLECTOR_NAME):4317 - - name: TEAM_NAME - value: ring - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.instance.id=$(OTEL_K8S_POD_UID),service.namespace=opentelemetry-demo,k8s.namespace.name=$(OTEL_K8S_NAMESPACE),k8s.node.name=$(OTEL_K8S_NODE_NAME),k8s.pod.name=$(OTEL_K8S_POD_NAME),app.eng.team=$(TEAM_NAME) + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 160Mi @@ -685,7 +744,7 @@ kind: Deployment metadata: name: checkout labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: checkout @@ -709,6 +768,10 @@ spec: app.kubernetes.io/component: checkout app.kubernetes.io/name: checkout + annotations: + resource.opentelemetry.io/service.name: checkout + resource.opentelemetry.io/service.namespace: opentelemetry-demo + resource.opentelemetry.io/service.owner: orion-team spec: serviceAccountName: example containers: @@ -724,11 +787,28 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: CHECKOUT_PORT value: "8080" - name: CART_ADDR @@ -749,14 +829,10 @@ spec: value: flagd - name: FLAGD_PORT value: "8013" - - name: OTEL_EXPORTER_OTLP_ENDPOINT - value: http://$(OTEL_COLLECTOR_NAME):4317 - name: GOMEMLIMIT value: 16MiB - - name: TEAM_NAME - value: orion - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.instance.id=$(OTEL_K8S_POD_UID),service.namespace=opentelemetry-demo,k8s.namespace.name=$(OTEL_K8S_NAMESPACE),k8s.node.name=$(OTEL_K8S_NODE_NAME),k8s.pod.name=$(OTEL_K8S_POD_NAME),app.eng.team=$(TEAM_NAME) + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 20Mi @@ -776,7 +852,7 @@ kind: Deployment metadata: name: currency labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: currency @@ -800,6 +876,10 @@ spec: app.kubernetes.io/component: currency app.kubernetes.io/name: currency + annotations: + resource.opentelemetry.io/service.name: currency + resource.opentelemetry.io/service.namespace: opentelemetry-demo + resource.opentelemetry.io/service.owner: orion-team spec: serviceAccountName: example containers: @@ -815,21 +895,34 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: CURRENCY_PORT value: "8080" - - name: OTEL_EXPORTER_OTLP_ENDPOINT - value: http://$(OTEL_COLLECTOR_NAME):4317 - name: VERSION value: '2.1.3' - - name: TEAM_NAME - value: orion - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.instance.id=$(OTEL_K8S_POD_UID),service.namespace=opentelemetry-demo,k8s.namespace.name=$(OTEL_K8S_NAMESPACE),k8s.node.name=$(OTEL_K8S_NODE_NAME),k8s.pod.name=$(OTEL_K8S_POD_NAME),app.eng.team=$(TEAM_NAME) + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 20Mi @@ -842,7 +935,7 @@ kind: Deployment metadata: name: email labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: email @@ -866,6 +959,10 @@ spec: app.kubernetes.io/component: email app.kubernetes.io/name: email + annotations: + resource.opentelemetry.io/service.name: email + resource.opentelemetry.io/service.namespace: opentelemetry-demo + resource.opentelemetry.io/service.owner: orion-team spec: serviceAccountName: example containers: @@ -881,25 +978,44 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: EMAIL_PORT value: "8080" - name: APP_ENV value: production - - name: OTEL_EXPORTER_OTLP_ENDPOINT - value: http://$(OTEL_COLLECTOR_NAME):4318 + - name: OTEL_EXPORTER_OTLP_TRACES_ENDPOINT + value: http://otel-demo-daemon-collector:4318/v1/traces - name: FLAGD_HOST value: flagd - name: FLAGD_PORT value: "8013" - - name: TEAM_NAME - value: orion + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4318 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: http/protobuf - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.instance.id=$(OTEL_K8S_POD_UID),service.namespace=opentelemetry-demo,k8s.namespace.name=$(OTEL_K8S_NAMESPACE),k8s.node.name=$(OTEL_K8S_NODE_NAME),k8s.pod.name=$(OTEL_K8S_POD_NAME),app.eng.team=$(TEAM_NAME) + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 100Mi @@ -912,7 +1028,7 @@ kind: Deployment metadata: name: flagd labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: flagd @@ -936,6 +1052,9 @@ spec: app.kubernetes.io/component: flagd app.kubernetes.io/name: flagd + annotations: + resource.opentelemetry.io/service.name: flagd + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -962,19 +1081,36 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: FLAGD_METRICS_EXPORTER value: otel - name: FLAGD_OTEL_COLLECTOR_URI - value: $(OTEL_COLLECTOR_NAME):4317 + value: otel-demo-daemon-collector:4317 - name: GOMEMLIMIT value: 60MiB - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.instance.id=$(OTEL_K8S_POD_UID),service.namespace=opentelemetry-demo,k8s.namespace.name=$(OTEL_K8S_NAMESPACE),k8s.node.name=$(OTEL_K8S_NODE_NAME),k8s.pod.name=$(OTEL_K8S_POD_NAME),app.eng.team=$(TEAM_NAME) + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 75Mi @@ -993,23 +1129,42 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - 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_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4318 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: http/protobuf - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.instance.id=$(OTEL_K8S_POD_UID),service.namespace=opentelemetry-demo,k8s.namespace.name=$(OTEL_K8S_NAMESPACE),k8s.node.name=$(OTEL_K8S_NODE_NAME),k8s.pod.name=$(OTEL_K8S_POD_NAME),app.eng.team=$(TEAM_NAME) + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 250Mi @@ -1041,7 +1196,7 @@ kind: Deployment metadata: name: fraud-detection labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: fraud-detection @@ -1065,6 +1220,10 @@ spec: app.kubernetes.io/component: fraud-detection app.kubernetes.io/name: fraud-detection + annotations: + resource.opentelemetry.io/service.name: fraud-detection + resource.opentelemetry.io/service.namespace: opentelemetry-demo + resource.opentelemetry.io/service.owner: orion-team spec: serviceAccountName: example containers: @@ -1076,27 +1235,44 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - 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: TEAM_NAME - value: orion + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4318 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: http/protobuf - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.instance.id=$(OTEL_K8S_POD_UID),service.namespace=opentelemetry-demo,k8s.namespace.name=$(OTEL_K8S_NAMESPACE),k8s.node.name=$(OTEL_K8S_NODE_NAME),k8s.pod.name=$(OTEL_K8S_POD_NAME),app.eng.team=$(TEAM_NAME) + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 300Mi @@ -1116,7 +1292,7 @@ kind: Deployment metadata: name: frontend labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: frontend @@ -1140,6 +1316,10 @@ spec: app.kubernetes.io/component: frontend app.kubernetes.io/name: frontend + annotations: + resource.opentelemetry.io/service.name: frontend + resource.opentelemetry.io/service.namespace: opentelemetry-demo + resource.opentelemetry.io/service.owner: ring-team spec: serviceAccountName: example containers: @@ -1155,11 +1335,28 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: FRONTEND_PORT value: "8080" - name: PORT @@ -1186,18 +1383,12 @@ spec: 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: TEAM_NAME - value: ring - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.instance.id=$(OTEL_K8S_POD_UID),service.namespace=opentelemetry-demo,k8s.namespace.name=$(OTEL_K8S_NAMESPACE),k8s.node.name=$(OTEL_K8S_NODE_NAME),k8s.pod.name=$(OTEL_K8S_POD_NAME),app.eng.team=$(TEAM_NAME) + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 250Mi @@ -1214,7 +1405,7 @@ kind: Deployment metadata: name: frontend-proxy labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: frontend-proxy @@ -1238,6 +1429,14 @@ spec: app.kubernetes.io/component: frontend-proxy app.kubernetes.io/name: frontend-proxy + annotations: + io.opentelemetry.discovery.metrics/config: | + targets: + - endpoint: "http://`endpoint`" # FIXME why isn't `endpoint` interpolated? + io.opentelemetry.discovery.metrics/enabled: "true" + io.opentelemetry.discovery.metrics/scraper: httpcheck + resource.opentelemetry.io/service.name: frontend-proxy + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -1253,11 +1452,28 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: ENVOY_PORT value: "8080" - name: ENVOY_ADMIN_PORT @@ -1290,14 +1506,12 @@ spec: 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.instance.id=$(OTEL_K8S_POD_UID),service.namespace=opentelemetry-demo,k8s.namespace.name=$(OTEL_K8S_NAMESPACE),k8s.node.name=$(OTEL_K8S_NODE_NAME),k8s.pod.name=$(OTEL_K8S_POD_NAME),app.eng.team=$(TEAM_NAME) + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 65Mi @@ -1314,7 +1528,7 @@ kind: Deployment metadata: name: image-provider labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: image-provider @@ -1338,6 +1552,15 @@ spec: app.kubernetes.io/component: image-provider app.kubernetes.io/name: image-provider + annotations: + io.opentelemetry.discovery.metrics/config: | + endpoint: "http://`endpoint`/status" + collection_interval: "10s" + timeout: "20s" + io.opentelemetry.discovery.metrics/enabled: "true" + io.opentelemetry.discovery.metrics/scraper: nginx + resource.opentelemetry.io/service.name: image-provider + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -1353,19 +1576,34 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - 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.instance.id=$(OTEL_K8S_POD_UID),service.namespace=opentelemetry-demo,k8s.namespace.name=$(OTEL_K8S_NAMESPACE),k8s.node.name=$(OTEL_K8S_NODE_NAME),k8s.pod.name=$(OTEL_K8S_POD_NAME),app.eng.team=$(TEAM_NAME) + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 50Mi @@ -1378,7 +1616,7 @@ kind: Deployment metadata: name: kafka labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: kafka @@ -1402,6 +1640,9 @@ spec: app.kubernetes.io/component: kafka app.kubernetes.io/name: kafka + annotations: + resource.opentelemetry.io/service.name: kafka + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -1419,15 +1660,30 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - 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 @@ -1436,8 +1692,12 @@ spec: value: CONTROLLER - name: KAFKA_CONTROLLER_QUORUM_VOTERS value: 1@kafka:9093 + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4318 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: http/protobuf - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.instance.id=$(OTEL_K8S_POD_UID),service.namespace=opentelemetry-demo,k8s.namespace.name=$(OTEL_K8S_NAMESPACE),k8s.node.name=$(OTEL_K8S_NODE_NAME),k8s.pod.name=$(OTEL_K8S_POD_NAME),app.eng.team=$(TEAM_NAME) + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 600Mi @@ -1454,7 +1714,7 @@ kind: Deployment metadata: name: load-generator labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: load-generator @@ -1478,6 +1738,10 @@ spec: app.kubernetes.io/component: load-generator app.kubernetes.io/name: load-generator + annotations: + resource.opentelemetry.io/service.name: load-generator + resource.opentelemetry.io/service.namespace: opentelemetry-demo + resource.opentelemetry.io/service.owner: ring-team spec: serviceAccountName: example containers: @@ -1493,11 +1757,28 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: LOCUST_WEB_HOST value: 0.0.0.0 - name: LOCUST_WEB_PORT @@ -1522,12 +1803,8 @@ spec: value: "8013" - name: FLAGD_OFREP_PORT value: "8016" - - name: OTEL_EXPORTER_OTLP_ENDPOINT - value: http://$(OTEL_COLLECTOR_NAME):4317 - - name: TEAM_NAME - value: ring - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.instance.id=$(OTEL_K8S_POD_UID),service.namespace=opentelemetry-demo,k8s.namespace.name=$(OTEL_K8S_NAMESPACE),k8s.node.name=$(OTEL_K8S_NODE_NAME),k8s.pod.name=$(OTEL_K8S_POD_NAME),app.eng.team=$(TEAM_NAME) + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 1500Mi @@ -1540,7 +1817,7 @@ kind: Deployment metadata: name: payment labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: payment @@ -1564,6 +1841,10 @@ spec: app.kubernetes.io/component: payment app.kubernetes.io/name: payment + annotations: + resource.opentelemetry.io/service.name: payment + resource.opentelemetry.io/service.namespace: opentelemetry-demo + resource.opentelemetry.io/service.owner: orion-team spec: serviceAccountName: example containers: @@ -1579,23 +1860,36 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - 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: TEAM_NAME - value: orion - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.instance.id=$(OTEL_K8S_POD_UID),service.namespace=opentelemetry-demo,k8s.namespace.name=$(OTEL_K8S_NAMESPACE),k8s.node.name=$(OTEL_K8S_NODE_NAME),k8s.pod.name=$(OTEL_K8S_POD_NAME),app.eng.team=$(TEAM_NAME) + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 120Mi @@ -1612,7 +1906,7 @@ kind: Deployment metadata: name: postgresql labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: postgresql @@ -1636,6 +1930,31 @@ spec: app.kubernetes.io/component: postgresql app.kubernetes.io/name: postgresql + annotations: + io.opentelemetry.discovery.metrics/config: | + username: root + password: otel + metrics: + postgresql.blks_hit: + enabled: true + postgresql.blks_read: + enabled: true + postgresql.tup_fetched: + enabled: true + postgresql.tup_returned: + enabled: true + postgresql.tup_inserted: + enabled: true + postgresql.tup_updated: + enabled: true + postgresql.tup_deleted: + enabled: true + postgresql.deadlocks: + enabled: true + tls: + insecure: true + io.opentelemetry.discovery.metrics/enabled: "true" + io.opentelemetry.discovery.metrics/scraper: postgresql spec: serviceAccountName: example containers: @@ -1651,11 +1970,28 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: POSTGRES_USER value: root - name: POSTGRES_PASSWORD @@ -1663,7 +1999,7 @@ spec: - name: POSTGRES_DB value: otel - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.instance.id=$(OTEL_K8S_POD_UID),service.namespace=opentelemetry-demo,k8s.namespace.name=$(OTEL_K8S_NAMESPACE),k8s.node.name=$(OTEL_K8S_NODE_NAME),k8s.pod.name=$(OTEL_K8S_POD_NAME),app.eng.team=$(TEAM_NAME) + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 100Mi @@ -1676,7 +2012,7 @@ kind: Deployment metadata: name: product-catalog labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: product-catalog @@ -1700,6 +2036,10 @@ spec: app.kubernetes.io/component: product-catalog app.kubernetes.io/name: product-catalog + annotations: + resource.opentelemetry.io/service.name: product-catalog + resource.opentelemetry.io/service.namespace: opentelemetry-demo + resource.opentelemetry.io/service.owner: helix-team spec: serviceAccountName: example containers: @@ -1715,11 +2055,28 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: PRODUCT_CATALOG_PORT value: "8080" - name: PRODUCT_CATALOG_RELOAD_INTERVAL @@ -1728,14 +2085,10 @@ spec: value: flagd - name: FLAGD_PORT value: "8013" - - name: OTEL_EXPORTER_OTLP_ENDPOINT - value: http://$(OTEL_COLLECTOR_NAME):4317 - name: GOMEMLIMIT value: 16MiB - - name: TEAM_NAME - value: helix - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.instance.id=$(OTEL_K8S_POD_UID),service.namespace=opentelemetry-demo,k8s.namespace.name=$(OTEL_K8S_NAMESPACE),k8s.node.name=$(OTEL_K8S_NODE_NAME),k8s.pod.name=$(OTEL_K8S_POD_NAME),app.eng.team=$(TEAM_NAME) + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 20Mi @@ -1753,7 +2106,7 @@ kind: Deployment metadata: name: quote labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: quote @@ -1777,6 +2130,10 @@ spec: app.kubernetes.io/component: quote app.kubernetes.io/name: quote + annotations: + resource.opentelemetry.io/service.name: quote + resource.opentelemetry.io/service.namespace: opentelemetry-demo + resource.opentelemetry.io/service.owner: orion-team spec: serviceAccountName: example containers: @@ -1792,11 +2149,28 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: QUOTE_PORT value: "8080" - name: OTEL_PHP_AUTOLOAD_ENABLED @@ -1804,11 +2178,11 @@ spec: - name: OTEL_PHP_INTERNAL_METRICS_ENABLED value: "true" - name: OTEL_EXPORTER_OTLP_ENDPOINT - value: http://$(OTEL_COLLECTOR_NAME):4318 - - name: TEAM_NAME - value: orion + value: http://otel-demo-daemon-collector:4318 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: http/protobuf - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.instance.id=$(OTEL_K8S_POD_UID),service.namespace=opentelemetry-demo,k8s.namespace.name=$(OTEL_K8S_NAMESPACE),k8s.node.name=$(OTEL_K8S_NODE_NAME),k8s.pod.name=$(OTEL_K8S_POD_NAME),app.eng.team=$(TEAM_NAME) + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 40Mi @@ -1825,7 +2199,7 @@ kind: Deployment metadata: name: recommendation labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: recommendation @@ -1849,6 +2223,10 @@ spec: app.kubernetes.io/component: recommendation app.kubernetes.io/name: recommendation + annotations: + resource.opentelemetry.io/service.name: recommendation + resource.opentelemetry.io/service.namespace: opentelemetry-demo + resource.opentelemetry.io/service.owner: helix-team spec: serviceAccountName: example containers: @@ -1864,11 +2242,28 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: RECOMMENDATION_PORT value: "8080" - name: PRODUCT_CATALOG_ADDR @@ -1881,12 +2276,8 @@ spec: value: flagd - name: FLAGD_PORT value: "8013" - - name: OTEL_EXPORTER_OTLP_ENDPOINT - value: http://$(OTEL_COLLECTOR_NAME):4317 - - name: TEAM_NAME - value: helix - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.instance.id=$(OTEL_K8S_POD_UID),service.namespace=opentelemetry-demo,k8s.namespace.name=$(OTEL_K8S_NAMESPACE),k8s.node.name=$(OTEL_K8S_NODE_NAME),k8s.pod.name=$(OTEL_K8S_POD_NAME),app.eng.team=$(TEAM_NAME) + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 500Mi @@ -1899,7 +2290,7 @@ kind: Deployment metadata: name: shipping labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: shipping @@ -1923,6 +2314,10 @@ spec: app.kubernetes.io/component: shipping app.kubernetes.io/name: shipping + annotations: + resource.opentelemetry.io/service.name: shipping + resource.opentelemetry.io/service.namespace: opentelemetry-demo + resource.opentelemetry.io/service.owner: orion-team spec: serviceAccountName: example containers: @@ -1938,21 +2333,34 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: SHIPPING_PORT value: "8080" - name: QUOTE_ADDR value: http://quote:8080 - - name: OTEL_EXPORTER_OTLP_ENDPOINT - value: http://$(OTEL_COLLECTOR_NAME):4317 - - name: TEAM_NAME - value: orion - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.instance.id=$(OTEL_K8S_POD_UID),service.namespace=opentelemetry-demo,k8s.namespace.name=$(OTEL_K8S_NAMESPACE),k8s.node.name=$(OTEL_K8S_NODE_NAME),k8s.pod.name=$(OTEL_K8S_POD_NAME),app.eng.team=$(TEAM_NAME) + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 20Mi @@ -1965,7 +2373,7 @@ kind: Deployment metadata: name: valkey-cart labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: valkey-cart @@ -1989,6 +2397,12 @@ spec: app.kubernetes.io/component: valkey-cart app.kubernetes.io/name: valkey-cart + annotations: + io.opentelemetry.discovery.metrics/config: | + username: valkey + collection_interval: 10s + io.opentelemetry.discovery.metrics/enabled: "true" + io.opentelemetry.discovery.metrics/scraper: redis spec: serviceAccountName: example containers: @@ -2004,13 +2418,30 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.instance.id=$(OTEL_K8S_POD_UID),service.namespace=opentelemetry-demo,k8s.namespace.name=$(OTEL_K8S_NAMESPACE),k8s.node.name=$(OTEL_K8S_NODE_NAME),k8s.pod.name=$(OTEL_K8S_POD_NAME),app.eng.team=$(TEAM_NAME) + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 20Mi diff --git a/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/flagd-config.yaml b/charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/flagd-config.yaml similarity index 98% rename from charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/flagd-config.yaml rename to charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/flagd-config.yaml index 1a64e1f8c3..04c58a9e4d 100644 --- a/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/flagd-config.yaml +++ b/charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/flagd-config.yaml @@ -6,7 +6,7 @@ metadata: name: flagd-config namespace: default labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" diff --git a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/grafana-config.yaml b/charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/grafana-config.yaml similarity index 97% rename from charts/opentelemetry-demo/examples/custom-environment-variables/rendered/grafana-config.yaml rename to charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/grafana-config.yaml index 54875bb9fb..ea732aba6b 100644 --- a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/grafana-config.yaml +++ b/charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/grafana-config.yaml @@ -6,7 +6,7 @@ metadata: name: grafana-alerting namespace: default labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" @@ -15,7 +15,101 @@ metadata: grafana_alert: "1" data: - {} + cart-service-alerting.yaml: | + # Copyright The OpenTelemetry Authors + # SPDX-License-Identifier: Apache-2.0 + + --- + apiVersion: 1 + groups: + - orgId: 1 + name: otel-demo + folder: cart + interval: 1m + rules: + - uid: des78nlna99tsf + title: CartAddItemHighLatency + condition: p95_threshold + data: + - refId: p95_duration + relativeTimeRange: + from: 600 + to: 0 + datasourceUid: webstore-metrics + model: + editorMode: code + expr: |- + histogram_quantile( + 0.95, + sum by (deployment_environment_name, service_namespace, service_name, service_instance_id, http_route, http_request_method, le) ( + rate( + http_server_request_duration_seconds_bucket{ + deployment_environment_name="demo", + service_namespace="otel-demo", + service_name="cart", + http_request_method="POST", + http_route="/oteldemo.CartService/AddItem" + }[5m] + ) + ) + ) + instant: true + interval: "" + intervalMs: 1000 + legendFormat: __auto + maxDataPoints: 43200 + range: false + refId: p95_duration + - refId: p95_threshold + datasourceUid: __expr__ + model: + conditions: + - evaluator: + params: + - 0.0001 + type: gt + operator: + type: and + query: + params: + - C + reducer: + params: [] + type: last + type: query + datasource: + type: __expr__ + uid: __expr__ + expression: p95_duration + intervalMs: 1000 + maxDataPoints: 43200 + refId: p95_threshold + type: threshold + dashboardUid: febljk0a32qyoa + panelId: 17 + noDataState: NoData + execErrState: Error + for: 1m + keepFiringFor: 2m + annotations: + description: |- + The 95th percentile response time for operation {{ $labels.service_namespace + }}/{{ $labels.service_name }} "{{ $labels.http_request_method }} {{ + $labels.http_route }}" has been + above xxx seconds for 2 minutes on {{ $labels.service_instance_id}}. Current + value: {{ .Value | humanizeDuration }}. + summary: |- + High P95 for {{ $labels.service_namespace }}/{{ $labels.service_name }} "{{ + $labels.http_request_method }} {{ $labels.http_route }}" + labels: + service_name: cart + service_namespace: otel-demo + deployment_environment_name: demo + severity: warning + team_name: webstore + isPaused: false + notification_settings: + receiver: grafana-default-email --- # Source: opentelemetry-demo/templates/grafana-config.yaml apiVersion: v1 @@ -24,7 +118,7 @@ metadata: name: grafana-dashboard-nginx-metrics namespace: default labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" @@ -382,7 +476,7 @@ metadata: name: grafana-dashboard-apm-dashboard namespace: default labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" @@ -418,7 +512,7 @@ data: "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 1, - "id": 5, + "id": 1, "links": [], "panels": [ { @@ -443,7 +537,7 @@ data: "content": "

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

\n", "mode": "html" }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "title": "", "type": "text" }, @@ -501,7 +595,7 @@ data: "textMode": "auto", "wideLayout": true }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "datasource": { @@ -570,6 +664,7 @@ data: "type": "log" }, "showPoints": "auto", + "showValues": false, "spanNulls": false, "stacking": { "group": "A", @@ -619,7 +714,7 @@ data: "sort": "none" } }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "datasource": { @@ -723,6 +818,7 @@ data: "type": "linear" }, "showPoints": "auto", + "showValues": false, "spanNulls": false, "stacking": { "group": "A", @@ -771,7 +867,7 @@ data: "sort": "none" } }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "datasource": { @@ -846,6 +942,7 @@ data: "type": "log" }, "showPoints": "auto", + "showValues": false, "spanNulls": false, "stacking": { "group": "A", @@ -895,7 +992,7 @@ data: "sort": "none" } }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "datasource": { @@ -961,7 +1058,7 @@ data: }, "viewMode": "list" }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "title": "Alerts", "type": "alertlist" }, @@ -981,6 +1078,9 @@ data: "cellOptions": { "type": "auto" }, + "footer": { + "reducers": [] + }, "inspect": false }, "mappings": [], @@ -1051,14 +1151,6 @@ data: "id": 21, "options": { "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, "showHeader": true, "sortBy": [ { @@ -1067,7 +1159,7 @@ data: } ] }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "datasource": { @@ -1175,6 +1267,9 @@ data: "cellOptions": { "type": "auto" }, + "footer": { + "reducers": [] + }, "inspect": false }, "mappings": [], @@ -1241,14 +1336,6 @@ data: "id": 27, "options": { "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, "showHeader": true, "sortBy": [ { @@ -1257,7 +1344,7 @@ data: } ] }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "datasource": { @@ -1379,6 +1466,9 @@ data: "cellOptions": { "type": "auto" }, + "footer": { + "reducers": [] + }, "inspect": false }, "mappings": [], @@ -1445,17 +1535,9 @@ data: "id": 23, "options": { "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, "showHeader": true }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "datasource": { @@ -1565,6 +1647,9 @@ data: "cellOptions": { "type": "auto" }, + "footer": { + "reducers": [] + }, "inspect": false }, "mappings": [], @@ -1631,18 +1716,10 @@ data: "id": 24, "options": { "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, "showHeader": true, "sortBy": [] }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "datasource": { @@ -1758,6 +1835,9 @@ data: "cellOptions": { "type": "auto" }, + "footer": { + "reducers": [] + }, "inspect": false }, "mappings": [], @@ -1824,17 +1904,9 @@ data: "id": 32, "options": { "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, "showHeader": true }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "datasource": { @@ -1939,7 +2011,7 @@ data: }, "id": 42, "panels": [], - "title": "Service instances", + "title": "Infrastructure", "type": "row" }, { @@ -1957,6 +2029,9 @@ data: "cellOptions": { "type": "auto" }, + "footer": { + "reducers": [] + }, "inspect": false }, "mappings": [], @@ -1990,7 +2065,7 @@ data: { "matcher": { "id": "byName", - "options": "Host Memory" + "options": "Host Used Memory" }, "properties": [ { @@ -2002,7 +2077,7 @@ data: ] }, "gridPos": { - "h": 4, + "h": 3, "w": 24, "x": 0, "y": 27 @@ -2010,26 +2085,18 @@ data: "id": 41, "options": { "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, "frameIndex": 1, "showHeader": true }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "editorMode": "code", - "expr": "sum by (service_instance_id_host_name) (\n label_join(\n (\n sum by (service_instance_id, host_name) (\n rate(system_cpu_time_seconds_total{job=\"\", state!=\"idle\"}[$__rate_interval])\n )\n * on(host_name) group_left(service_instance_id)\n target_info{service_name=\"${service_name}\"}\n ),\n \"service_instance_id_host_name\",\n \" / \",\n \"service_instance_id\",\n \"host_name\"\n )\n)", + "expr": "sum by (host_name) (\n rate(system_cpu_time_seconds_total{service_name=\"\", state!=\"idle\"}[$__rate_interval])\n)\n* on(host_name) \ngroup by (host_name) (\n target_info{service_name=\"${service_name}\", service_instance_id!=\"\"}\n)", "hide": false, "legendFormat": "__auto", "range": true, - "refId": "cpu_time_percentage" + "refId": "cpu_time_pct" }, { "datasource": { @@ -2037,7 +2104,7 @@ data: "uid": "webstore-metrics" }, "editorMode": "code", - "expr": "sum by (service_instance_id_host_name) (\n label_join(\n (\n (\n sum by (service_instance_id, host_name) (\n system_memory_usage_bytes{job=\"\", state!=\"free\"}\n )\n /\n sum by (service_instance_id, host_name) (\n system_memory_usage_bytes{job=\"\"}\n )\n )\n * on(host_name) group_left(service_instance_id) (\n target_info{service_name=\"${service_name}\"}\n )\n ),\n \"service_instance_id_host_name\",\n \" / \",\n \"service_instance_id\",\n \"host_name\"\n )\n)", + "expr": " (\n (\n sum by (host_name) (\n system_memory_usage_bytes{service_name=\"\", state=\"used\"}\n )\n /\n sum by (host_name) (\n system_memory_usage_bytes{service_name=\"\"}\n )\n )\n * on(host_name) (\n group by (host_name) (\n target_info{service_name=\"${service_name}\"}\n )\n )\n )\n", "hide": false, "instant": false, "legendFormat": "__auto", @@ -2045,7 +2112,7 @@ data: "refId": "memory_usage_pct" } ], - "title": "Service instance / host", + "title": "", "transformations": [ { "id": "timeSeriesTable", @@ -2053,6 +2120,9 @@ data: "A": { "timeField": "Time" }, + "cpu_time_pct": { + "timeField": "Time" + }, "cpu_time_percentage": { "timeField": "Time" }, @@ -2064,7 +2134,7 @@ data: { "id": "joinByField", "options": { - "byField": "service_instance_id_host_name", + "byField": "host_name", "mode": "outer" } }, @@ -2075,8 +2145,152 @@ data: "includeByName": {}, "indexByName": {}, "renameByName": { + "Trend #cpu_time_pct": "Host CPU", + "Trend #cpu_time_percentage": "Host CPU", + "Trend #memory_usage_pct": "Host Used Memory", + "host_name": "Host", + "service_instance_id_host_name": "Instance / Host" + } + } + } + ], + "type": "table" + }, + { + "datasource": { + "type": "prometheus", + "uid": "webstore-metrics" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "footer": { + "reducers": [] + }, + "inspect": false + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Pod CPU usage" + }, + "properties": [ + { + "id": "unit", + "value": "percentunit" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Pod Memory Usage" + }, + "properties": [ + { + "id": "unit", + "value": "decbytes" + } + ] + } + ] + }, + "gridPos": { + "h": 3, + "w": 24, + "x": 0, + "y": 30 + }, + "id": 43, + "options": { + "cellHeight": "sm", + "frameIndex": 1, + "showHeader": true + }, + "pluginVersion": "12.2.0", + "targets": [ + { + "editorMode": "code", + "expr": "sum by (k8s_pod_name) (\n rate(k8s_pod_cpu_time_seconds_total{}[$__rate_interval])\n)\n* on(k8s_pod_name) \ngroup by (k8s_pod_name) (\n target_info{service_name=\"${service_name}\", service_instance_id!=\"\"}\n)\n", + "hide": false, + "legendFormat": "__auto", + "range": true, + "refId": "cpu_time_pct" + }, + { + "datasource": { + "type": "prometheus", + "uid": "webstore-metrics" + }, + "editorMode": "code", + "expr": "\nsum by (k8s_pod_name) (\n k8s_pod_memory_working_set_bytes{}\n)\n* on(k8s_pod_name)\ngroup by (k8s_pod_name) (\n target_info{service_name=\"${service_name}\", service_instance_id!=\"\"}\n)\n", + "hide": false, + "instant": false, + "legendFormat": "__auto", + "range": true, + "refId": "memory_usage_bytes" + } + ], + "title": "", + "transformations": [ + { + "id": "timeSeriesTable", + "options": { + "A": { + "timeField": "Time" + }, + "cpu_time_percentage": { + "timeField": "Time" + }, + "memory_usage_pct": { + "timeField": "Time" + } + } + }, + { + "id": "joinByField", + "options": { + "byField": "k8s_pod_name", + "mode": "outer" + } + }, + { + "id": "organize", + "options": { + "excludeByName": { + "service_instance_id": true + }, + "includeByName": {}, + "indexByName": {}, + "renameByName": { + "Trend #cpu_time_pct": "Pod CPU usage", "Trend #cpu_time_percentage": "Host CPU", + "Trend #memory_usage_bytes": "Pod Memory Usage", "Trend #memory_usage_pct": "Host Memory", + "k8s_pod_name": "Kubernetes Pod Name", "service_instance_id_host_name": "Instance / Host" } } @@ -2090,7 +2304,7 @@ data: "h": 1, "w": 24, "x": 0, - "y": 31 + "y": 33 }, "id": 25, "panels": [], @@ -2113,6 +2327,9 @@ data: "cellOptions": { "type": "auto" }, + "footer": { + "reducers": [] + }, "inspect": false }, "mappings": [], @@ -2174,23 +2391,15 @@ data: "h": 15, "w": 24, "x": 0, - "y": 32 + "y": 34 }, "id": 26, "options": { "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, "showHeader": true, "sortBy": [] }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "alias": "", @@ -2257,156 +2466,150 @@ data: "type": "table" }, { - "collapsed": true, + "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, - "y": 47 + "y": 49 }, "id": 29, - "panels": [ - { - "datasource": { - "type": "jaeger", - "uid": "${jaeger_datasource}" + "panels": [], + "title": "Traces", + "type": "row" + }, + { + "datasource": { + "type": "jaeger", + "uid": "${jaeger_datasource}" + }, + "description": "Traces containing a span emitted by the service", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" }, - "description": "Traces containing a span emitted by the service", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "cellOptions": { - "type": "auto" - }, - "inspect": false - }, - "mappings": [], - "noValue": "No traces", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": 0 - }, - { - "color": "red", - "value": 80 - } - ] - } + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" }, - "overrides": [ + "footer": { + "reducers": [] + }, + "inspect": false + }, + "mappings": [], + "noValue": "No traces", + "thresholds": { + "mode": "absolute", + "steps": [ { - "matcher": { - "id": "byName", - "options": "Trace Service" - }, - "properties": [ - { - "id": "custom.hidden", - "value": true - } - ] + "color": "green", + "value": 0 }, { - "matcher": { - "id": "byName", - "options": "Span ID" - }, - "properties": [ - { - "id": "custom.hidden", - "value": false - } - ] - }, + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Trace Service" + }, + "properties": [ { - "matcher": { - "id": "byName", - "options": "deployment.environment.name" - }, - "properties": [ - { - "id": "custom.hidden", - "value": true - } - ] - }, + "id": "custom.hideFrom.viz", + "value": true + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Span ID" + }, + "properties": [ { - "matcher": { - "id": "byName", - "options": "service.name" - }, - "properties": [ - { - "id": "custom.hidden", - "value": true - } - ] - }, + "id": "custom.hideFrom.viz", + "value": false + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "deployment.environment.name" + }, + "properties": [ { - "matcher": { - "id": "byName", - "options": "service.namespace" - }, - "properties": [ - { - "id": "custom.hidden", - "value": true - } - ] + "id": "custom.hideFrom.viz", + "value": true } ] }, - "gridPos": { - "h": 8, - "w": 15, - "x": 0, - "y": 58 + { + "matcher": { + "id": "byName", + "options": "service.name" + }, + "properties": [ + { + "id": "custom.hideFrom.viz", + "value": true + } + ] }, - "id": 30, - "options": { - "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false + { + "matcher": { + "id": "byName", + "options": "service.namespace" }, - "frameIndex": 0, - "showHeader": true + "properties": [ + { + "id": "custom.hideFrom.viz", + "value": true + } + ] + } + ] + }, + "gridPos": { + "h": 8, + "w": 15, + "x": 0, + "y": 50 + }, + "id": 30, + "options": { + "cellHeight": "sm", + "frameIndex": 0, + "showHeader": true + }, + "pluginVersion": "12.2.0", + "targets": [ + { + "datasource": { + "type": "jaeger", + "uid": "${jaeger_datasource}" }, - "pluginVersion": "12.1.0", - "targets": [ - { - "datasource": { - "type": "jaeger", - "uid": "${jaeger_datasource}" - }, - "queryType": "search", - "refId": "A", - "service": "$service_name", - "tags": "service.namespace=\"$service_namespace\"" - } - ], - "title": "", - "type": "table" + "queryType": "search", + "refId": "A", + "service": "$service_name", + "tags": "service.namespace=\"$service_namespace\"" } ], - "title": "Traces", - "type": "row" + "title": "", + "type": "table" } ], "preload": false, "refresh": "30s", - "schemaVersion": 41, + "schemaVersion": 42, "tags": [], "templating": { "list": [ @@ -2457,23 +2660,34 @@ data: }, { "current": { - "text": ".*", - "value": ".*" + "text": "demo", + "value": "demo" }, - "description": "Waiting to implement support of the optional value of `deployment.environment.name` in the OpenSearch and Jager panels, hide variable.", - "hide": 2, + "definition": "label_values(target_info,deployment_environment_name)", "label": "Environment", "name": "deployment_environment_name", - "query": ".*", - "skipUrlSync": true, - "type": "constant" + "options": [], + "query": { + "qryType": 1, + "query": "label_values(target_info,deployment_environment_name)", + "refId": "PrometheusVariableQueryEditor-VariableQuery" + }, + "refresh": 1, + "regex": "", + "staticOptions": [ + { + "text": "<>", + "value": "" + } + ], + "type": "query" }, { "allValue": ".*", "allowCustomValue": false, "current": { - "text": "opentelemetry-demo", - "value": "opentelemetry-demo" + "text": "otel-demo", + "value": "otel-demo" }, "datasource": { "type": "prometheus", @@ -2539,7 +2753,7 @@ metadata: name: grafana-dashboard-demo-dashboard namespace: default labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" @@ -3743,7 +3957,7 @@ metadata: name: grafana-dashboard-exemplars-dashboard namespace: default labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" @@ -4219,7 +4433,7 @@ metadata: name: grafana-dashboard-linux-dashboard namespace: default labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" @@ -7065,7 +7279,7 @@ metadata: name: grafana-dashboard-opentelemetry-collector namespace: default labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" @@ -13400,7 +13614,7 @@ metadata: name: grafana-dashboard-postgresql-dashboard namespace: default labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" @@ -14891,7 +15105,7 @@ metadata: name: grafana-dashboard-spanmetrics-dashboard namespace: default labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" @@ -15942,7 +16156,7 @@ metadata: name: grafana-datasources namespace: default labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" @@ -15951,30 +16165,6 @@ metadata: 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 @@ -15986,7 +16176,7 @@ data: - name: Jaeger uid: webstore-traces type: jaeger - url: http://jaeger:16686/jaeger/ui + url: http://jaeger-query:16686/jaeger/ui editable: true isDefault: false jsonData: @@ -16020,3 +16210,27 @@ data: pplEnabled: true timeField: observedTimestamp version: 3.2.0 + prometheus.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 diff --git a/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/grafana/clusterrole.yaml b/charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/grafana/clusterrole.yaml similarity index 100% rename from charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/grafana/clusterrole.yaml rename to charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/grafana/clusterrole.yaml diff --git a/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/grafana/clusterrolebinding.yaml b/charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/grafana/clusterrolebinding.yaml similarity index 100% rename from charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/grafana/clusterrolebinding.yaml rename to charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/grafana/clusterrolebinding.yaml diff --git a/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/grafana/configmap-dashboard-provider.yaml b/charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/grafana/configmap-dashboard-provider.yaml similarity index 100% rename from charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/grafana/configmap-dashboard-provider.yaml rename to charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/grafana/configmap-dashboard-provider.yaml diff --git a/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/grafana/configmap.yaml b/charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/grafana/configmap.yaml similarity index 100% rename from charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/grafana/configmap.yaml rename to charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/grafana/configmap.yaml diff --git a/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/grafana/deployment.yaml b/charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/grafana/deployment.yaml similarity index 100% rename from charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/grafana/deployment.yaml rename to charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/grafana/deployment.yaml diff --git a/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/grafana/role.yaml b/charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/grafana/role.yaml similarity index 100% rename from charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/grafana/role.yaml rename to charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/grafana/role.yaml diff --git a/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/grafana/rolebinding.yaml b/charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/grafana/rolebinding.yaml similarity index 100% rename from charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/grafana/rolebinding.yaml rename to charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/grafana/rolebinding.yaml diff --git a/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/grafana/secret.yaml b/charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/grafana/secret.yaml similarity index 100% rename from charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/grafana/secret.yaml rename to charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/grafana/secret.yaml diff --git a/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/grafana/service.yaml b/charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/grafana/service.yaml similarity index 100% rename from charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/grafana/service.yaml rename to charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/grafana/service.yaml diff --git a/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/grafana/serviceaccount.yaml b/charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/grafana/serviceaccount.yaml similarity index 100% rename from charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/grafana/serviceaccount.yaml rename to charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/grafana/serviceaccount.yaml diff --git a/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/jaeger/allinone-agent-svc.yaml b/charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/jaeger/allinone-agent-svc.yaml similarity index 100% rename from charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/jaeger/allinone-agent-svc.yaml rename to charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/jaeger/allinone-agent-svc.yaml diff --git a/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/jaeger/allinone-collector-svc.yaml b/charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/jaeger/allinone-collector-svc.yaml similarity index 100% rename from charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/jaeger/allinone-collector-svc.yaml rename to charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/jaeger/allinone-collector-svc.yaml diff --git a/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/jaeger/allinone-deploy.yaml b/charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/jaeger/allinone-deploy.yaml similarity index 100% rename from charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/jaeger/allinone-deploy.yaml rename to charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/jaeger/allinone-deploy.yaml diff --git a/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/jaeger/allinone-query-svc.yaml b/charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/jaeger/allinone-query-svc.yaml similarity index 100% rename from charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/jaeger/allinone-query-svc.yaml rename to charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/jaeger/allinone-query-svc.yaml diff --git a/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/jaeger/allinone-sa.yaml b/charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/jaeger/allinone-sa.yaml similarity index 100% rename from charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/jaeger/allinone-sa.yaml rename to charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/jaeger/allinone-sa.yaml diff --git a/charts/opentelemetry-demo/examples/bring-your-own-observability/rendered/opensearch/configmap.yaml b/charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/opensearch/configmap.yaml similarity index 100% rename from charts/opentelemetry-demo/examples/bring-your-own-observability/rendered/opensearch/configmap.yaml rename to charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/opensearch/configmap.yaml diff --git a/charts/opentelemetry-demo/examples/bring-your-own-observability/rendered/opensearch/poddisruptionbudget.yaml b/charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/opensearch/poddisruptionbudget.yaml similarity index 100% rename from charts/opentelemetry-demo/examples/bring-your-own-observability/rendered/opensearch/poddisruptionbudget.yaml rename to charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/opensearch/poddisruptionbudget.yaml diff --git a/charts/opentelemetry-demo/examples/bring-your-own-observability/rendered/opensearch/service.yaml b/charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/opensearch/service.yaml similarity index 100% rename from charts/opentelemetry-demo/examples/bring-your-own-observability/rendered/opensearch/service.yaml rename to charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/opensearch/service.yaml diff --git a/charts/opentelemetry-demo/examples/bring-your-own-observability/rendered/opensearch/statefulset.yaml b/charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/opensearch/statefulset.yaml similarity index 100% rename from charts/opentelemetry-demo/examples/bring-your-own-observability/rendered/opensearch/statefulset.yaml rename to charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/opensearch/statefulset.yaml diff --git a/charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/opentelemetry-kube-stack/clusterrole.yaml b/charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/opentelemetry-kube-stack/clusterrole.yaml new file mode 100644 index 0000000000..eabfef18d2 --- /dev/null +++ b/charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/opentelemetry-kube-stack/clusterrole.yaml @@ -0,0 +1,140 @@ +--- +# Source: opentelemetry-demo/charts/opentelemetry-kube-stack/templates/clusterrole.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: example-collector +rules: +- apiGroups: [""] + resources: + - namespaces + - nodes + - nodes/proxy + - nodes/metrics + - nodes/stats + - services + - endpoints + - pods + - events + - secrets + - persistentvolumeclaims + - persistentvolumes + verbs: ["get", "list", "watch"] +- apiGroups: ["monitoring.coreos.com"] + resources: + - servicemonitors + - podmonitors + - scrapeconfigs + - probes + verbs: ["get", "list", "watch"] +- apiGroups: + - extensions + resources: + - ingresses + verbs: ["get", "list", "watch"] +- apiGroups: + - apps + resources: + - daemonsets + - deployments + - replicasets + - statefulsets + verbs: ["get", "list", "watch"] +- apiGroups: + - networking.k8s.io + resources: + - ingresses + verbs: ["get", "list", "watch"] +- apiGroups: ["discovery.k8s.io"] + resources: + - endpointslices + verbs: ["get", "list", "watch"] +- nonResourceURLs: ["/metrics", "/metrics/cadvisor"] + verbs: ["get"] + +- verbs: + - get + - list + - watch + - create + - update + - patch + - delete + apiGroups: + - coordination.k8s.io + resources: + - leases +- apiGroups: + - "" + resources: + - events + - namespaces + - namespaces/status + - nodes + - nodes/spec + - pods + - pods/status + - replicationcontrollers + - replicationcontrollers/status + - resourcequotas + - services + verbs: + - get + - list + - watch +- apiGroups: + - apps + resources: + - daemonsets + - deployments + - replicasets + - statefulsets + verbs: + - get + - list + - watch +- apiGroups: + - extensions + resources: + - daemonsets + - deployments + - replicasets + verbs: + - get + - list + - watch +- apiGroups: + - batch + resources: + - jobs + - cronjobs + verbs: + - get + - list + - watch +- apiGroups: + - autoscaling + resources: + - horizontalpodautoscalers + verbs: + - get + - list + - watch +- apiGroups: ["events.k8s.io"] + resources: ["events"] + verbs: ["watch", "list"] +--- +# Source: opentelemetry-demo/charts/opentelemetry-kube-stack/templates/clusterrole.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: otel-demo-daemon +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: example-collector +subjects: +- kind: ServiceAccount + # quirk of the Operator + name: "otel-demo-daemon-collector" + namespace: default diff --git a/charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/opentelemetry-kube-stack/collector.yaml b/charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/opentelemetry-kube-stack/collector.yaml new file mode 100644 index 0000000000..aad9aeea1b --- /dev/null +++ b/charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/opentelemetry-kube-stack/collector.yaml @@ -0,0 +1,304 @@ +--- +# Source: opentelemetry-demo/charts/opentelemetry-kube-stack/templates/collector.yaml +apiVersion: opentelemetry.io/v1beta1 +kind: OpenTelemetryCollector +metadata: + name: otel-demo-daemon + namespace: default + labels: + helm.sh/chart: opentelemetry-kube-stack-0.11.1 + app.kubernetes.io/version: "0.129.1" + app.kubernetes.io/managed-by: Helm + release: "example" +spec: + managementState: managed + mode: daemonset + config: + connectors: + spanmetrics: {} + exporters: + debug: {} + opensearch: + http: + endpoint: http://opensearch:9200 + tls: + insecure: true + logs_index: otel-logs + logs_index_time_format: yyyy-MM-dd + otlp/jaeger: + endpoint: http://jaeger-collector:4317 + tls: + insecure: true + otlphttp/prometheus: + endpoint: http://prometheus:9090/api/v1/otlp + tls: + insecure: true + extensions: + health_check: + endpoint: 0.0.0.0:13133 + k8s_leader_elector/k8s_cluster: + auth_type: serviceAccount + lease_name: k8s.cluster.receiver.opentelemetry.io + lease_namespace: default + k8s_leader_elector/k8s_objects: + auth_type: serviceAccount + lease_name: k8s.objects.receiver.opentelemetry.io + lease_namespace: default + k8s_observer: + observe_ingresses: true + observe_nodes: true + observe_services: true + processors: + batch: + send_batch_max_size: 1500 + send_batch_size: 1000 + timeout: 1s + k8sattributes: + extract: + labels: + - from: pod + key: app.kubernetes.io/instance + tag_name: k8s.app.instance + - from: pod + key: app.kubernetes.io/component + tag_name: k8s.app.component + metadata: + - k8s.namespace.name + - k8s.pod.name + - k8s.pod.uid + - k8s.node.name + - k8s.pod.start_time + - k8s.deployment.name + - k8s.replicaset.name + - k8s.replicaset.uid + - k8s.daemonset.name + - k8s.daemonset.uid + - k8s.job.name + - k8s.job.uid + - k8s.container.name + - k8s.cronjob.name + - k8s.statefulset.name + - k8s.statefulset.uid + - container.image.tag + - container.image.name + - k8s.cluster.uid + - service.namespace + - service.name + - service.version + - service.instance.id + otel_annotations: true + filter: + node_from_env_var: OTEL_K8S_NODE_NAME + passthrough: false + pod_association: + - sources: + - from: resource_attribute + name: k8s.pod.uid + - sources: + - from: resource_attribute + name: k8s.pod.name + - from: resource_attribute + name: k8s.namespace.name + - from: resource_attribute + name: k8s.node.name + - sources: + - from: resource_attribute + name: k8s.pod.ip + - sources: + - from: resource_attribute + name: k8s.pod.name + - from: resource_attribute + name: k8s.namespace.name + - sources: + - from: connection + resource/hostname: + attributes: + - action: insert + from_attribute: k8s.node.name + key: host.name + resourcedetection/env: + detectors: + - env + - k8snode + override: false + timeout: 2s + transform/fix_nextjs_span_name: + error_mode: ignore + trace_statements: + - context: span + statements: + - replace_pattern(name, "\\?.*", "") + - replace_match(name, "GET /api/products/*", "GET /api/products/{productId}") + transform/set_service_owner: + error_mode: ignore + log_statements: + - set(resource.attribute["service.owner"], "ring-team") where resource.attribute["service.name"] + == "frontend-proxy" + metric_statements: + - set(resource.attribute["service.owner"], "ring-team") where resource.attribute["service.name"] + == "frontend-proxy" + trace_statements: + - set(resource.attribute["service.owner"], "ring-team") where resource.attribute["service.name"] + == "frontend-proxy" + receivers: + k8s_cluster: + allocatable_types_to_report: + - cpu + - memory + - storage + auth_type: serviceAccount + collection_interval: 10s + k8s_leader_elector: k8s_leader_elector/k8s_cluster + node_conditions_to_report: + - Ready + - MemoryPressure + - DiskPressure + - NetworkUnavailable + k8sobjects: + k8s_leader_elector: k8s_leader_elector/k8s_objects + objects: + - exclude_watch_type: + - DELETED + group: events.k8s.io + mode: watch + name: events + kubeletstats: + auth_type: serviceAccount + collection_interval: 15s + endpoint: https://${env:OTEL_K8S_NODE_IP}:10250 + extra_metadata_labels: + - container.id + - k8s.volume.type + insecure_skip_verify: true + k8s_api_config: + auth_type: serviceAccount + metric_groups: + - node + - pod + - volume + - container + metrics: + container.cpu.usage: + enabled: true + k8s.node.cpu.usage: + enabled: true + k8s.node.uptime: + enabled: true + k8s.pod.cpu.usage: + enabled: true + k8s.pod.uptime: + enabled: true + otlp: + protocols: + grpc: + endpoint: 0.0.0.0:4317 + http: + cors: + allowed_origins: + - http://* + - https://* + endpoint: 0.0.0.0:4318 + receiver_creator/k8s: + discovery: + enabled: true + watch_observers: + - k8s_observer + service: + extensions: + - health_check + - k8s_observer + - k8s_leader_elector/k8s_objects + - k8s_leader_elector/k8s_cluster + pipelines: + logs: + exporters: + - opensearch + processors: + - k8sattributes + - resourcedetection/env + - resource/hostname + - transform/set_service_owner + - batch + receivers: + - otlp + - k8sobjects + metrics: + exporters: + - otlphttp/prometheus + processors: + - k8sattributes + - resourcedetection/env + - resource/hostname + - transform/set_service_owner + - batch + receivers: + - otlp + - receiver_creator/k8s + - spanmetrics + - kubeletstats + - k8s_cluster + traces: + exporters: + - otlp/jaeger + - spanmetrics + processors: + - k8sattributes + - resourcedetection/env + - resource/hostname + - transform/set_service_owner + - transform/fix_nextjs_span_name + - batch + receivers: + - otlp + telemetry: + logs: + level: info + metrics: + readers: + - pull: + exporter: + prometheus: + host: 0.0.0.0 + port: 8888 + image: "otel/opentelemetry-collector-contrib:0.134.1" + imagePullPolicy: IfNotPresent + upgradeStrategy: automatic + terminationGracePeriodSeconds: 30 + resources: + limits: + cpu: 200m + memory: 500Mi + requests: + cpu: 100m + memory: 250Mi + securityContext: + runAsGroup: 0 + runAsUser: 0 + targetAllocator: + enabled: false + env: + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + - name: OTEL_K8S_NODE_IP + valueFrom: + fieldRef: + fieldPath: status.hostIP + - name: OTEL_K8S_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.namespace + - name: OTEL_K8S_POD_NAME + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.name + - name: OTEL_K8S_POD_IP + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: status.podIP + - name: OTEL_RESOURCE_ATTRIBUTES + value: "k8s.cluster.name=otel-demo-stack" diff --git a/charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/opentelemetry-kube-stack/hooks.yaml b/charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/opentelemetry-kube-stack/hooks.yaml new file mode 100644 index 0000000000..21e0f367a0 --- /dev/null +++ b/charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/opentelemetry-kube-stack/hooks.yaml @@ -0,0 +1,64 @@ +--- +# Source: opentelemetry-demo/charts/opentelemetry-kube-stack/templates/hooks.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: delete-resources-sa + annotations: + "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded +--- +# Source: opentelemetry-demo/charts/opentelemetry-kube-stack/templates/hooks.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: delete-resources-role + annotations: + "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded +rules: + - apiGroups: + - opentelemetry.io + resources: + - instrumentations + - opampbridges + - opentelemetrycollectors + verbs: + - get + - list + - delete +--- +# Source: opentelemetry-demo/charts/opentelemetry-kube-stack/templates/hooks.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: delete-resources-rolebinding + annotations: + "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: delete-resources-role +subjects: + - kind: ServiceAccount + name: delete-resources-sa +--- +# Source: opentelemetry-demo/charts/opentelemetry-kube-stack/templates/hooks.yaml +apiVersion: batch/v1 +kind: Job +metadata: + name: opentelemetry-kube-stack-pre-delete-job + annotations: + "helm.sh/hook": pre-delete + "helm.sh/hook-delete-policy": hook-succeeded,hook-failed +spec: + template: + spec: + restartPolicy: Never + serviceAccountName: delete-resources-sa + containers: + - name: delete-resources + image: "rancher/kubectl:v1.34.1" + args: + - "delete" + - "instrumentations,opampbridges,opentelemetrycollectors" + - "-l" + - "helm.sh/chart=opentelemetry-kube-stack-0.11.1" diff --git a/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/product-catalog-products.yaml b/charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/product-catalog-products.yaml similarity index 99% rename from charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/product-catalog-products.yaml rename to charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/product-catalog-products.yaml index 047185144c..5b0c601396 100644 --- a/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/product-catalog-products.yaml +++ b/charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/product-catalog-products.yaml @@ -6,7 +6,7 @@ metadata: name: product-catalog-products namespace: default labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" diff --git a/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/prometheus/clusterrole.yaml b/charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/prometheus/clusterrole.yaml similarity index 100% rename from charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/prometheus/clusterrole.yaml rename to charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/prometheus/clusterrole.yaml diff --git a/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/prometheus/clusterrolebinding.yaml b/charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/prometheus/clusterrolebinding.yaml similarity index 100% rename from charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/prometheus/clusterrolebinding.yaml rename to charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/prometheus/clusterrolebinding.yaml diff --git a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/prometheus/cm.yaml b/charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/prometheus/cm.yaml similarity index 99% rename from charts/opentelemetry-demo/examples/custom-environment-variables/rendered/prometheus/cm.yaml rename to charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/prometheus/cm.yaml index a5e59fac28..6218e3c0a7 100644 --- a/charts/opentelemetry-demo/examples/custom-environment-variables/rendered/prometheus/cm.yaml +++ b/charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/prometheus/cm.yaml @@ -53,6 +53,7 @@ data: - postgresql.schema.name - postgresql.table.name - postgresql.index.name + - database rule_files: - /etc/config/recording_rules.yml - /etc/config/alerting_rules.yml diff --git a/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/prometheus/deploy.yaml b/charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/prometheus/deploy.yaml similarity index 100% rename from charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/prometheus/deploy.yaml rename to charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/prometheus/deploy.yaml diff --git a/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/prometheus/service.yaml b/charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/prometheus/service.yaml similarity index 100% rename from charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/prometheus/service.yaml rename to charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/prometheus/service.yaml diff --git a/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/prometheus/serviceaccount.yaml b/charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/prometheus/serviceaccount.yaml similarity index 100% rename from charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/prometheus/serviceaccount.yaml rename to charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/prometheus/serviceaccount.yaml diff --git a/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/serviceaccount.yaml b/charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/serviceaccount.yaml similarity index 85% rename from charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/serviceaccount.yaml rename to charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/serviceaccount.yaml index 64279d14a2..b72148e91d 100644 --- a/charts/opentelemetry-demo/examples/collector-as-daemonset/rendered/serviceaccount.yaml +++ b/charts/opentelemetry-demo/examples/custom-resource-attributes/rendered/serviceaccount.yaml @@ -5,7 +5,7 @@ kind: ServiceAccount metadata: name: example labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" diff --git a/charts/opentelemetry-demo/examples/custom-resource-attributes/values.yaml b/charts/opentelemetry-demo/examples/custom-resource-attributes/values.yaml new file mode 100644 index 0000000000..bdbf2e6414 --- /dev/null +++ b/charts/opentelemetry-demo/examples/custom-resource-attributes/values.yaml @@ -0,0 +1,92 @@ +components: + accounting: + podAnnotations: + resource.opentelemetry.io/service.owner: orion-team + + ad: + podAnnotations: + resource.opentelemetry.io/service.owner: helix-team + + cart: + podAnnotations: + resource.opentelemetry.io/service.owner: ring-team + + checkout: + podAnnotations: + resource.opentelemetry.io/service.owner: orion-team + + currency: + podAnnotations: + resource.opentelemetry.io/service.owner: orion-team + + email: + podAnnotations: + resource.opentelemetry.io/service.owner: orion-team + + fraud-detection: + podAnnotations: + resource.opentelemetry.io/service.owner: orion-team + + frontend: + podAnnotations: + resource.opentelemetry.io/service.owner: ring-team + + load-generator: + podAnnotations: + resource.opentelemetry.io/service.owner: ring-team + + payment: + podAnnotations: + resource.opentelemetry.io/service.owner: orion-team + + product-catalog: + podAnnotations: + resource.opentelemetry.io/service.owner: helix-team + + quote: + podAnnotations: + resource.opentelemetry.io/service.owner: orion-team + + recommendation: + podAnnotations: + resource.opentelemetry.io/service.owner: helix-team + + shipping: + podAnnotations: + resource.opentelemetry.io/service.owner: orion-team + +opentelemetry-kube-stack: + collectors: + daemon: + config: + processors: + transform/set_service_owner: + error_mode: ignore + trace_statements: + - set(resource.attribute["service.owner"], "ring-team") where resource.attribute["service.name"] == "frontend-proxy" + log_statements: + - set(resource.attribute["service.owner"], "ring-team") where resource.attribute["service.name"] == "frontend-proxy" + metric_statements: + - set(resource.attribute["service.owner"], "ring-team") where resource.attribute["service.name"] == "frontend-proxy" + service: + extensions: [health_check, k8s_observer] + pipelines: + traces: + processors: + - resourcedetection/env + - resource/hostname + - transform/set_service_owner + - transform/fix_nextjs_span_name + - batch + metrics: + processors: + - resourcedetection/env + - resource/hostname + - transform/set_service_owner + - batch + logs: + processors: + - resourcedetection/env + - resource/hostname + - transform/set_service_owner + - batch diff --git a/charts/opentelemetry-demo/examples/default/rendered/component.yaml b/charts/opentelemetry-demo/examples/default/rendered/component.yaml index 01ccfa7a22..6a35e410b3 100644 --- a/charts/opentelemetry-demo/examples/default/rendered/component.yaml +++ b/charts/opentelemetry-demo/examples/default/rendered/component.yaml @@ -5,7 +5,7 @@ kind: Service metadata: name: ad labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: ad @@ -30,7 +30,7 @@ kind: Service metadata: name: cart labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: cart @@ -55,7 +55,7 @@ kind: Service metadata: name: checkout labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: checkout @@ -80,7 +80,7 @@ kind: Service metadata: name: currency labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: currency @@ -105,7 +105,7 @@ kind: Service metadata: name: email labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: email @@ -130,7 +130,7 @@ kind: Service metadata: name: flagd labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: flagd @@ -161,7 +161,7 @@ kind: Service metadata: name: frontend labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: frontend @@ -186,7 +186,7 @@ kind: Service metadata: name: frontend-proxy labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: frontend-proxy @@ -211,7 +211,7 @@ kind: Service metadata: name: image-provider labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: image-provider @@ -236,7 +236,7 @@ kind: Service metadata: name: kafka labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: kafka @@ -264,7 +264,7 @@ kind: Service metadata: name: load-generator labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: load-generator @@ -289,7 +289,7 @@ kind: Service metadata: name: payment labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: payment @@ -314,7 +314,7 @@ kind: Service metadata: name: postgresql labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: postgresql @@ -339,7 +339,7 @@ kind: Service metadata: name: product-catalog labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: product-catalog @@ -364,7 +364,7 @@ kind: Service metadata: name: quote labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: quote @@ -389,7 +389,7 @@ kind: Service metadata: name: recommendation labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: recommendation @@ -414,7 +414,7 @@ kind: Service metadata: name: shipping labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: shipping @@ -439,7 +439,7 @@ kind: Service metadata: name: valkey-cart labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: valkey-cart @@ -464,7 +464,7 @@ kind: Deployment metadata: name: accounting labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: accounting @@ -488,6 +488,9 @@ spec: app.kubernetes.io/component: accounting app.kubernetes.io/name: accounting + annotations: + resource.opentelemetry.io/service.name: accounting + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -499,21 +502,40 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - 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_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4318 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: http/protobuf - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.1.3 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 120Mi @@ -533,7 +555,7 @@ kind: Deployment metadata: name: ad labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: ad @@ -557,6 +579,9 @@ spec: app.kubernetes.io/component: ad app.kubernetes.io/name: ad + annotations: + resource.opentelemetry.io/service.name: ad + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -572,23 +597,42 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - 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_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4318 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: http/protobuf - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.1.3 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 300Mi @@ -601,7 +645,7 @@ kind: Deployment metadata: name: cart labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: cart @@ -625,6 +669,9 @@ spec: app.kubernetes.io/component: cart app.kubernetes.io/name: cart + annotations: + resource.opentelemetry.io/service.name: cart + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -640,11 +687,28 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: CART_PORT value: "8080" - name: ASPNETCORE_URLS @@ -655,10 +719,8 @@ spec: 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 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 160Mi @@ -679,7 +741,7 @@ kind: Deployment metadata: name: checkout labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: checkout @@ -703,6 +765,9 @@ spec: app.kubernetes.io/component: checkout app.kubernetes.io/name: checkout + annotations: + resource.opentelemetry.io/service.name: checkout + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -718,11 +783,28 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: CHECKOUT_PORT value: "8080" - name: CART_ADDR @@ -743,12 +825,10 @@ spec: 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 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 20Mi @@ -768,7 +848,7 @@ kind: Deployment metadata: name: currency labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: currency @@ -792,6 +872,9 @@ spec: app.kubernetes.io/component: currency app.kubernetes.io/name: currency + annotations: + resource.opentelemetry.io/service.name: currency + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -807,19 +890,34 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - 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 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 20Mi @@ -832,7 +930,7 @@ kind: Deployment metadata: name: email labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: email @@ -856,6 +954,9 @@ spec: app.kubernetes.io/component: email app.kubernetes.io/name: email + annotations: + resource.opentelemetry.io/service.name: email + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -871,23 +972,44 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: EMAIL_PORT value: "8080" - name: APP_ENV value: production - - name: OTEL_EXPORTER_OTLP_ENDPOINT - value: http://$(OTEL_COLLECTOR_NAME):4318 + - name: OTEL_EXPORTER_OTLP_TRACES_ENDPOINT + value: http://otel-demo-daemon-collector:4318/v1/traces - name: FLAGD_HOST value: flagd - name: FLAGD_PORT value: "8013" + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4318 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: http/protobuf - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.1.3 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 100Mi @@ -900,7 +1022,7 @@ kind: Deployment metadata: name: flagd labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: flagd @@ -924,6 +1046,9 @@ spec: app.kubernetes.io/component: flagd app.kubernetes.io/name: flagd + annotations: + resource.opentelemetry.io/service.name: flagd + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -950,19 +1075,36 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: FLAGD_METRICS_EXPORTER value: otel - name: FLAGD_OTEL_COLLECTOR_URI - value: $(OTEL_COLLECTOR_NAME):4317 + value: otel-demo-daemon-collector:4317 - name: GOMEMLIMIT value: 60MiB - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.1.3 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 75Mi @@ -981,23 +1123,42 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - 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_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4318 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: http/protobuf - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.1.3 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 250Mi @@ -1029,7 +1190,7 @@ kind: Deployment metadata: name: fraud-detection labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: fraud-detection @@ -1053,6 +1214,9 @@ spec: app.kubernetes.io/component: fraud-detection app.kubernetes.io/name: fraud-detection + annotations: + resource.opentelemetry.io/service.name: fraud-detection + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -1064,25 +1228,44 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - 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_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4318 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: http/protobuf - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.1.3 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 300Mi @@ -1102,7 +1285,7 @@ kind: Deployment metadata: name: frontend labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: frontend @@ -1126,6 +1309,9 @@ spec: app.kubernetes.io/component: frontend app.kubernetes.io/name: frontend + annotations: + resource.opentelemetry.io/service.name: frontend + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -1141,11 +1327,28 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: FRONTEND_PORT value: "8080" - name: PORT @@ -1172,16 +1375,12 @@ spec: 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 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 250Mi @@ -1198,7 +1397,7 @@ kind: Deployment metadata: name: frontend-proxy labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: frontend-proxy @@ -1222,6 +1421,14 @@ spec: app.kubernetes.io/component: frontend-proxy app.kubernetes.io/name: frontend-proxy + annotations: + io.opentelemetry.discovery.metrics/config: | + targets: + - endpoint: "http://`endpoint`" # FIXME why isn't `endpoint` interpolated? + io.opentelemetry.discovery.metrics/enabled: "true" + io.opentelemetry.discovery.metrics/scraper: httpcheck + resource.opentelemetry.io/service.name: frontend-proxy + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -1237,11 +1444,28 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: ENVOY_PORT value: "8080" - name: ENVOY_ADMIN_PORT @@ -1274,14 +1498,12 @@ spec: 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 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 65Mi @@ -1298,7 +1520,7 @@ kind: Deployment metadata: name: image-provider labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: image-provider @@ -1322,6 +1544,15 @@ spec: app.kubernetes.io/component: image-provider app.kubernetes.io/name: image-provider + annotations: + io.opentelemetry.discovery.metrics/config: | + endpoint: "http://`endpoint`/status" + collection_interval: "10s" + timeout: "20s" + io.opentelemetry.discovery.metrics/enabled: "true" + io.opentelemetry.discovery.metrics/scraper: nginx + resource.opentelemetry.io/service.name: image-provider + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -1337,19 +1568,34 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - 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 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 50Mi @@ -1362,7 +1608,7 @@ kind: Deployment metadata: name: kafka labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: kafka @@ -1386,6 +1632,9 @@ spec: app.kubernetes.io/component: kafka app.kubernetes.io/name: kafka + annotations: + resource.opentelemetry.io/service.name: kafka + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -1403,15 +1652,30 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - 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 @@ -1420,8 +1684,12 @@ spec: value: CONTROLLER - name: KAFKA_CONTROLLER_QUORUM_VOTERS value: 1@kafka:9093 + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4318 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: http/protobuf - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.1.3 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 600Mi @@ -1438,7 +1706,7 @@ kind: Deployment metadata: name: load-generator labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: load-generator @@ -1462,6 +1730,9 @@ spec: app.kubernetes.io/component: load-generator app.kubernetes.io/name: load-generator + annotations: + resource.opentelemetry.io/service.name: load-generator + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -1477,11 +1748,28 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: LOCUST_WEB_HOST value: 0.0.0.0 - name: LOCUST_WEB_PORT @@ -1506,10 +1794,8 @@ spec: 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 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 1500Mi @@ -1522,7 +1808,7 @@ kind: Deployment metadata: name: payment labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: payment @@ -1546,6 +1832,9 @@ spec: app.kubernetes.io/component: payment app.kubernetes.io/name: payment + annotations: + resource.opentelemetry.io/service.name: payment + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -1561,21 +1850,36 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - 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 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 120Mi @@ -1592,7 +1896,7 @@ kind: Deployment metadata: name: postgresql labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: postgresql @@ -1616,6 +1920,31 @@ spec: app.kubernetes.io/component: postgresql app.kubernetes.io/name: postgresql + annotations: + io.opentelemetry.discovery.metrics/config: | + username: root + password: otel + metrics: + postgresql.blks_hit: + enabled: true + postgresql.blks_read: + enabled: true + postgresql.tup_fetched: + enabled: true + postgresql.tup_returned: + enabled: true + postgresql.tup_inserted: + enabled: true + postgresql.tup_updated: + enabled: true + postgresql.tup_deleted: + enabled: true + postgresql.deadlocks: + enabled: true + tls: + insecure: true + io.opentelemetry.discovery.metrics/enabled: "true" + io.opentelemetry.discovery.metrics/scraper: postgresql spec: serviceAccountName: example containers: @@ -1631,11 +1960,28 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: POSTGRES_USER value: root - name: POSTGRES_PASSWORD @@ -1643,7 +1989,7 @@ spec: - name: POSTGRES_DB value: otel - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.1.3 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 100Mi @@ -1656,7 +2002,7 @@ kind: Deployment metadata: name: product-catalog labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: product-catalog @@ -1680,6 +2026,9 @@ spec: app.kubernetes.io/component: product-catalog app.kubernetes.io/name: product-catalog + annotations: + resource.opentelemetry.io/service.name: product-catalog + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -1695,11 +2044,28 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: PRODUCT_CATALOG_PORT value: "8080" - name: PRODUCT_CATALOG_RELOAD_INTERVAL @@ -1708,12 +2074,10 @@ spec: 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 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 20Mi @@ -1731,7 +2095,7 @@ kind: Deployment metadata: name: quote labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: quote @@ -1755,6 +2119,9 @@ spec: app.kubernetes.io/component: quote app.kubernetes.io/name: quote + annotations: + resource.opentelemetry.io/service.name: quote + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -1770,11 +2137,28 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: QUOTE_PORT value: "8080" - name: OTEL_PHP_AUTOLOAD_ENABLED @@ -1782,9 +2166,11 @@ spec: - name: OTEL_PHP_INTERNAL_METRICS_ENABLED value: "true" - name: OTEL_EXPORTER_OTLP_ENDPOINT - value: http://$(OTEL_COLLECTOR_NAME):4318 + value: http://otel-demo-daemon-collector:4318 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: http/protobuf - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.1.3 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 40Mi @@ -1801,7 +2187,7 @@ kind: Deployment metadata: name: recommendation labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: recommendation @@ -1825,6 +2211,9 @@ spec: app.kubernetes.io/component: recommendation app.kubernetes.io/name: recommendation + annotations: + resource.opentelemetry.io/service.name: recommendation + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -1840,11 +2229,28 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: RECOMMENDATION_PORT value: "8080" - name: PRODUCT_CATALOG_ADDR @@ -1857,10 +2263,8 @@ spec: 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 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 500Mi @@ -1873,7 +2277,7 @@ kind: Deployment metadata: name: shipping labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: shipping @@ -1897,6 +2301,9 @@ spec: app.kubernetes.io/component: shipping app.kubernetes.io/name: shipping + annotations: + resource.opentelemetry.io/service.name: shipping + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -1912,19 +2319,34 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - 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 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 20Mi @@ -1937,7 +2359,7 @@ kind: Deployment metadata: name: valkey-cart labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: valkey-cart @@ -1961,6 +2383,12 @@ spec: app.kubernetes.io/component: valkey-cart app.kubernetes.io/name: valkey-cart + annotations: + io.opentelemetry.discovery.metrics/config: | + username: valkey + collection_interval: 10s + io.opentelemetry.discovery.metrics/enabled: "true" + io.opentelemetry.discovery.metrics/scraper: redis spec: serviceAccountName: example containers: @@ -1976,13 +2404,30 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.1.3 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 20Mi diff --git a/charts/opentelemetry-demo/examples/default/rendered/flagd-config.yaml b/charts/opentelemetry-demo/examples/default/rendered/flagd-config.yaml index 1a64e1f8c3..04c58a9e4d 100644 --- a/charts/opentelemetry-demo/examples/default/rendered/flagd-config.yaml +++ b/charts/opentelemetry-demo/examples/default/rendered/flagd-config.yaml @@ -6,7 +6,7 @@ metadata: name: flagd-config namespace: default labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" diff --git a/charts/opentelemetry-demo/examples/default/rendered/grafana-config.yaml b/charts/opentelemetry-demo/examples/default/rendered/grafana-config.yaml index 54875bb9fb..ea732aba6b 100644 --- a/charts/opentelemetry-demo/examples/default/rendered/grafana-config.yaml +++ b/charts/opentelemetry-demo/examples/default/rendered/grafana-config.yaml @@ -6,7 +6,7 @@ metadata: name: grafana-alerting namespace: default labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" @@ -15,7 +15,101 @@ metadata: grafana_alert: "1" data: - {} + cart-service-alerting.yaml: | + # Copyright The OpenTelemetry Authors + # SPDX-License-Identifier: Apache-2.0 + + --- + apiVersion: 1 + groups: + - orgId: 1 + name: otel-demo + folder: cart + interval: 1m + rules: + - uid: des78nlna99tsf + title: CartAddItemHighLatency + condition: p95_threshold + data: + - refId: p95_duration + relativeTimeRange: + from: 600 + to: 0 + datasourceUid: webstore-metrics + model: + editorMode: code + expr: |- + histogram_quantile( + 0.95, + sum by (deployment_environment_name, service_namespace, service_name, service_instance_id, http_route, http_request_method, le) ( + rate( + http_server_request_duration_seconds_bucket{ + deployment_environment_name="demo", + service_namespace="otel-demo", + service_name="cart", + http_request_method="POST", + http_route="/oteldemo.CartService/AddItem" + }[5m] + ) + ) + ) + instant: true + interval: "" + intervalMs: 1000 + legendFormat: __auto + maxDataPoints: 43200 + range: false + refId: p95_duration + - refId: p95_threshold + datasourceUid: __expr__ + model: + conditions: + - evaluator: + params: + - 0.0001 + type: gt + operator: + type: and + query: + params: + - C + reducer: + params: [] + type: last + type: query + datasource: + type: __expr__ + uid: __expr__ + expression: p95_duration + intervalMs: 1000 + maxDataPoints: 43200 + refId: p95_threshold + type: threshold + dashboardUid: febljk0a32qyoa + panelId: 17 + noDataState: NoData + execErrState: Error + for: 1m + keepFiringFor: 2m + annotations: + description: |- + The 95th percentile response time for operation {{ $labels.service_namespace + }}/{{ $labels.service_name }} "{{ $labels.http_request_method }} {{ + $labels.http_route }}" has been + above xxx seconds for 2 minutes on {{ $labels.service_instance_id}}. Current + value: {{ .Value | humanizeDuration }}. + summary: |- + High P95 for {{ $labels.service_namespace }}/{{ $labels.service_name }} "{{ + $labels.http_request_method }} {{ $labels.http_route }}" + labels: + service_name: cart + service_namespace: otel-demo + deployment_environment_name: demo + severity: warning + team_name: webstore + isPaused: false + notification_settings: + receiver: grafana-default-email --- # Source: opentelemetry-demo/templates/grafana-config.yaml apiVersion: v1 @@ -24,7 +118,7 @@ metadata: name: grafana-dashboard-nginx-metrics namespace: default labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" @@ -382,7 +476,7 @@ metadata: name: grafana-dashboard-apm-dashboard namespace: default labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" @@ -418,7 +512,7 @@ data: "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 1, - "id": 5, + "id": 1, "links": [], "panels": [ { @@ -443,7 +537,7 @@ data: "content": "

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

\n", "mode": "html" }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "title": "", "type": "text" }, @@ -501,7 +595,7 @@ data: "textMode": "auto", "wideLayout": true }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "datasource": { @@ -570,6 +664,7 @@ data: "type": "log" }, "showPoints": "auto", + "showValues": false, "spanNulls": false, "stacking": { "group": "A", @@ -619,7 +714,7 @@ data: "sort": "none" } }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "datasource": { @@ -723,6 +818,7 @@ data: "type": "linear" }, "showPoints": "auto", + "showValues": false, "spanNulls": false, "stacking": { "group": "A", @@ -771,7 +867,7 @@ data: "sort": "none" } }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "datasource": { @@ -846,6 +942,7 @@ data: "type": "log" }, "showPoints": "auto", + "showValues": false, "spanNulls": false, "stacking": { "group": "A", @@ -895,7 +992,7 @@ data: "sort": "none" } }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "datasource": { @@ -961,7 +1058,7 @@ data: }, "viewMode": "list" }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "title": "Alerts", "type": "alertlist" }, @@ -981,6 +1078,9 @@ data: "cellOptions": { "type": "auto" }, + "footer": { + "reducers": [] + }, "inspect": false }, "mappings": [], @@ -1051,14 +1151,6 @@ data: "id": 21, "options": { "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, "showHeader": true, "sortBy": [ { @@ -1067,7 +1159,7 @@ data: } ] }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "datasource": { @@ -1175,6 +1267,9 @@ data: "cellOptions": { "type": "auto" }, + "footer": { + "reducers": [] + }, "inspect": false }, "mappings": [], @@ -1241,14 +1336,6 @@ data: "id": 27, "options": { "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, "showHeader": true, "sortBy": [ { @@ -1257,7 +1344,7 @@ data: } ] }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "datasource": { @@ -1379,6 +1466,9 @@ data: "cellOptions": { "type": "auto" }, + "footer": { + "reducers": [] + }, "inspect": false }, "mappings": [], @@ -1445,17 +1535,9 @@ data: "id": 23, "options": { "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, "showHeader": true }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "datasource": { @@ -1565,6 +1647,9 @@ data: "cellOptions": { "type": "auto" }, + "footer": { + "reducers": [] + }, "inspect": false }, "mappings": [], @@ -1631,18 +1716,10 @@ data: "id": 24, "options": { "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, "showHeader": true, "sortBy": [] }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "datasource": { @@ -1758,6 +1835,9 @@ data: "cellOptions": { "type": "auto" }, + "footer": { + "reducers": [] + }, "inspect": false }, "mappings": [], @@ -1824,17 +1904,9 @@ data: "id": 32, "options": { "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, "showHeader": true }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "datasource": { @@ -1939,7 +2011,7 @@ data: }, "id": 42, "panels": [], - "title": "Service instances", + "title": "Infrastructure", "type": "row" }, { @@ -1957,6 +2029,9 @@ data: "cellOptions": { "type": "auto" }, + "footer": { + "reducers": [] + }, "inspect": false }, "mappings": [], @@ -1990,7 +2065,7 @@ data: { "matcher": { "id": "byName", - "options": "Host Memory" + "options": "Host Used Memory" }, "properties": [ { @@ -2002,7 +2077,7 @@ data: ] }, "gridPos": { - "h": 4, + "h": 3, "w": 24, "x": 0, "y": 27 @@ -2010,26 +2085,18 @@ data: "id": 41, "options": { "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, "frameIndex": 1, "showHeader": true }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "editorMode": "code", - "expr": "sum by (service_instance_id_host_name) (\n label_join(\n (\n sum by (service_instance_id, host_name) (\n rate(system_cpu_time_seconds_total{job=\"\", state!=\"idle\"}[$__rate_interval])\n )\n * on(host_name) group_left(service_instance_id)\n target_info{service_name=\"${service_name}\"}\n ),\n \"service_instance_id_host_name\",\n \" / \",\n \"service_instance_id\",\n \"host_name\"\n )\n)", + "expr": "sum by (host_name) (\n rate(system_cpu_time_seconds_total{service_name=\"\", state!=\"idle\"}[$__rate_interval])\n)\n* on(host_name) \ngroup by (host_name) (\n target_info{service_name=\"${service_name}\", service_instance_id!=\"\"}\n)", "hide": false, "legendFormat": "__auto", "range": true, - "refId": "cpu_time_percentage" + "refId": "cpu_time_pct" }, { "datasource": { @@ -2037,7 +2104,7 @@ data: "uid": "webstore-metrics" }, "editorMode": "code", - "expr": "sum by (service_instance_id_host_name) (\n label_join(\n (\n (\n sum by (service_instance_id, host_name) (\n system_memory_usage_bytes{job=\"\", state!=\"free\"}\n )\n /\n sum by (service_instance_id, host_name) (\n system_memory_usage_bytes{job=\"\"}\n )\n )\n * on(host_name) group_left(service_instance_id) (\n target_info{service_name=\"${service_name}\"}\n )\n ),\n \"service_instance_id_host_name\",\n \" / \",\n \"service_instance_id\",\n \"host_name\"\n )\n)", + "expr": " (\n (\n sum by (host_name) (\n system_memory_usage_bytes{service_name=\"\", state=\"used\"}\n )\n /\n sum by (host_name) (\n system_memory_usage_bytes{service_name=\"\"}\n )\n )\n * on(host_name) (\n group by (host_name) (\n target_info{service_name=\"${service_name}\"}\n )\n )\n )\n", "hide": false, "instant": false, "legendFormat": "__auto", @@ -2045,7 +2112,7 @@ data: "refId": "memory_usage_pct" } ], - "title": "Service instance / host", + "title": "", "transformations": [ { "id": "timeSeriesTable", @@ -2053,6 +2120,9 @@ data: "A": { "timeField": "Time" }, + "cpu_time_pct": { + "timeField": "Time" + }, "cpu_time_percentage": { "timeField": "Time" }, @@ -2064,7 +2134,7 @@ data: { "id": "joinByField", "options": { - "byField": "service_instance_id_host_name", + "byField": "host_name", "mode": "outer" } }, @@ -2075,8 +2145,152 @@ data: "includeByName": {}, "indexByName": {}, "renameByName": { + "Trend #cpu_time_pct": "Host CPU", + "Trend #cpu_time_percentage": "Host CPU", + "Trend #memory_usage_pct": "Host Used Memory", + "host_name": "Host", + "service_instance_id_host_name": "Instance / Host" + } + } + } + ], + "type": "table" + }, + { + "datasource": { + "type": "prometheus", + "uid": "webstore-metrics" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "footer": { + "reducers": [] + }, + "inspect": false + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Pod CPU usage" + }, + "properties": [ + { + "id": "unit", + "value": "percentunit" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Pod Memory Usage" + }, + "properties": [ + { + "id": "unit", + "value": "decbytes" + } + ] + } + ] + }, + "gridPos": { + "h": 3, + "w": 24, + "x": 0, + "y": 30 + }, + "id": 43, + "options": { + "cellHeight": "sm", + "frameIndex": 1, + "showHeader": true + }, + "pluginVersion": "12.2.0", + "targets": [ + { + "editorMode": "code", + "expr": "sum by (k8s_pod_name) (\n rate(k8s_pod_cpu_time_seconds_total{}[$__rate_interval])\n)\n* on(k8s_pod_name) \ngroup by (k8s_pod_name) (\n target_info{service_name=\"${service_name}\", service_instance_id!=\"\"}\n)\n", + "hide": false, + "legendFormat": "__auto", + "range": true, + "refId": "cpu_time_pct" + }, + { + "datasource": { + "type": "prometheus", + "uid": "webstore-metrics" + }, + "editorMode": "code", + "expr": "\nsum by (k8s_pod_name) (\n k8s_pod_memory_working_set_bytes{}\n)\n* on(k8s_pod_name)\ngroup by (k8s_pod_name) (\n target_info{service_name=\"${service_name}\", service_instance_id!=\"\"}\n)\n", + "hide": false, + "instant": false, + "legendFormat": "__auto", + "range": true, + "refId": "memory_usage_bytes" + } + ], + "title": "", + "transformations": [ + { + "id": "timeSeriesTable", + "options": { + "A": { + "timeField": "Time" + }, + "cpu_time_percentage": { + "timeField": "Time" + }, + "memory_usage_pct": { + "timeField": "Time" + } + } + }, + { + "id": "joinByField", + "options": { + "byField": "k8s_pod_name", + "mode": "outer" + } + }, + { + "id": "organize", + "options": { + "excludeByName": { + "service_instance_id": true + }, + "includeByName": {}, + "indexByName": {}, + "renameByName": { + "Trend #cpu_time_pct": "Pod CPU usage", "Trend #cpu_time_percentage": "Host CPU", + "Trend #memory_usage_bytes": "Pod Memory Usage", "Trend #memory_usage_pct": "Host Memory", + "k8s_pod_name": "Kubernetes Pod Name", "service_instance_id_host_name": "Instance / Host" } } @@ -2090,7 +2304,7 @@ data: "h": 1, "w": 24, "x": 0, - "y": 31 + "y": 33 }, "id": 25, "panels": [], @@ -2113,6 +2327,9 @@ data: "cellOptions": { "type": "auto" }, + "footer": { + "reducers": [] + }, "inspect": false }, "mappings": [], @@ -2174,23 +2391,15 @@ data: "h": 15, "w": 24, "x": 0, - "y": 32 + "y": 34 }, "id": 26, "options": { "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, "showHeader": true, "sortBy": [] }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "alias": "", @@ -2257,156 +2466,150 @@ data: "type": "table" }, { - "collapsed": true, + "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, - "y": 47 + "y": 49 }, "id": 29, - "panels": [ - { - "datasource": { - "type": "jaeger", - "uid": "${jaeger_datasource}" + "panels": [], + "title": "Traces", + "type": "row" + }, + { + "datasource": { + "type": "jaeger", + "uid": "${jaeger_datasource}" + }, + "description": "Traces containing a span emitted by the service", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" }, - "description": "Traces containing a span emitted by the service", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "cellOptions": { - "type": "auto" - }, - "inspect": false - }, - "mappings": [], - "noValue": "No traces", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": 0 - }, - { - "color": "red", - "value": 80 - } - ] - } + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" }, - "overrides": [ + "footer": { + "reducers": [] + }, + "inspect": false + }, + "mappings": [], + "noValue": "No traces", + "thresholds": { + "mode": "absolute", + "steps": [ { - "matcher": { - "id": "byName", - "options": "Trace Service" - }, - "properties": [ - { - "id": "custom.hidden", - "value": true - } - ] + "color": "green", + "value": 0 }, { - "matcher": { - "id": "byName", - "options": "Span ID" - }, - "properties": [ - { - "id": "custom.hidden", - "value": false - } - ] - }, + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Trace Service" + }, + "properties": [ { - "matcher": { - "id": "byName", - "options": "deployment.environment.name" - }, - "properties": [ - { - "id": "custom.hidden", - "value": true - } - ] - }, + "id": "custom.hideFrom.viz", + "value": true + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Span ID" + }, + "properties": [ { - "matcher": { - "id": "byName", - "options": "service.name" - }, - "properties": [ - { - "id": "custom.hidden", - "value": true - } - ] - }, + "id": "custom.hideFrom.viz", + "value": false + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "deployment.environment.name" + }, + "properties": [ { - "matcher": { - "id": "byName", - "options": "service.namespace" - }, - "properties": [ - { - "id": "custom.hidden", - "value": true - } - ] + "id": "custom.hideFrom.viz", + "value": true } ] }, - "gridPos": { - "h": 8, - "w": 15, - "x": 0, - "y": 58 + { + "matcher": { + "id": "byName", + "options": "service.name" + }, + "properties": [ + { + "id": "custom.hideFrom.viz", + "value": true + } + ] }, - "id": 30, - "options": { - "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false + { + "matcher": { + "id": "byName", + "options": "service.namespace" }, - "frameIndex": 0, - "showHeader": true + "properties": [ + { + "id": "custom.hideFrom.viz", + "value": true + } + ] + } + ] + }, + "gridPos": { + "h": 8, + "w": 15, + "x": 0, + "y": 50 + }, + "id": 30, + "options": { + "cellHeight": "sm", + "frameIndex": 0, + "showHeader": true + }, + "pluginVersion": "12.2.0", + "targets": [ + { + "datasource": { + "type": "jaeger", + "uid": "${jaeger_datasource}" }, - "pluginVersion": "12.1.0", - "targets": [ - { - "datasource": { - "type": "jaeger", - "uid": "${jaeger_datasource}" - }, - "queryType": "search", - "refId": "A", - "service": "$service_name", - "tags": "service.namespace=\"$service_namespace\"" - } - ], - "title": "", - "type": "table" + "queryType": "search", + "refId": "A", + "service": "$service_name", + "tags": "service.namespace=\"$service_namespace\"" } ], - "title": "Traces", - "type": "row" + "title": "", + "type": "table" } ], "preload": false, "refresh": "30s", - "schemaVersion": 41, + "schemaVersion": 42, "tags": [], "templating": { "list": [ @@ -2457,23 +2660,34 @@ data: }, { "current": { - "text": ".*", - "value": ".*" + "text": "demo", + "value": "demo" }, - "description": "Waiting to implement support of the optional value of `deployment.environment.name` in the OpenSearch and Jager panels, hide variable.", - "hide": 2, + "definition": "label_values(target_info,deployment_environment_name)", "label": "Environment", "name": "deployment_environment_name", - "query": ".*", - "skipUrlSync": true, - "type": "constant" + "options": [], + "query": { + "qryType": 1, + "query": "label_values(target_info,deployment_environment_name)", + "refId": "PrometheusVariableQueryEditor-VariableQuery" + }, + "refresh": 1, + "regex": "", + "staticOptions": [ + { + "text": "<>", + "value": "" + } + ], + "type": "query" }, { "allValue": ".*", "allowCustomValue": false, "current": { - "text": "opentelemetry-demo", - "value": "opentelemetry-demo" + "text": "otel-demo", + "value": "otel-demo" }, "datasource": { "type": "prometheus", @@ -2539,7 +2753,7 @@ metadata: name: grafana-dashboard-demo-dashboard namespace: default labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" @@ -3743,7 +3957,7 @@ metadata: name: grafana-dashboard-exemplars-dashboard namespace: default labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" @@ -4219,7 +4433,7 @@ metadata: name: grafana-dashboard-linux-dashboard namespace: default labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" @@ -7065,7 +7279,7 @@ metadata: name: grafana-dashboard-opentelemetry-collector namespace: default labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" @@ -13400,7 +13614,7 @@ metadata: name: grafana-dashboard-postgresql-dashboard namespace: default labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" @@ -14891,7 +15105,7 @@ metadata: name: grafana-dashboard-spanmetrics-dashboard namespace: default labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" @@ -15942,7 +16156,7 @@ metadata: name: grafana-datasources namespace: default labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" @@ -15951,30 +16165,6 @@ metadata: 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 @@ -15986,7 +16176,7 @@ data: - name: Jaeger uid: webstore-traces type: jaeger - url: http://jaeger:16686/jaeger/ui + url: http://jaeger-query:16686/jaeger/ui editable: true isDefault: false jsonData: @@ -16020,3 +16210,27 @@ data: pplEnabled: true timeField: observedTimestamp version: 3.2.0 + prometheus.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 diff --git a/charts/opentelemetry-demo/examples/default/rendered/opentelemetry-collector/clusterrole.yaml b/charts/opentelemetry-demo/examples/default/rendered/opentelemetry-collector/clusterrole.yaml deleted file mode 100644 index c468710781..0000000000 --- a/charts/opentelemetry-demo/examples/default/rendered/opentelemetry-collector/clusterrole.yaml +++ /dev/null @@ -1,24 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/opentelemetry-collector/templates/clusterrole.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: otel-collector - labels: - helm.sh/chart: opentelemetry-collector-0.134.0 - app.kubernetes.io/name: opentelemetry-collector - app.kubernetes.io/instance: example - app.kubernetes.io/version: "0.135.0" - app.kubernetes.io/managed-by: Helm - 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"] diff --git a/charts/opentelemetry-demo/examples/default/rendered/opentelemetry-collector/clusterrolebinding.yaml b/charts/opentelemetry-demo/examples/default/rendered/opentelemetry-collector/clusterrolebinding.yaml deleted file mode 100644 index bad505de75..0000000000 --- a/charts/opentelemetry-demo/examples/default/rendered/opentelemetry-collector/clusterrolebinding.yaml +++ /dev/null @@ -1,22 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/opentelemetry-collector/templates/clusterrolebinding.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: otel-collector - labels: - helm.sh/chart: opentelemetry-collector-0.134.0 - app.kubernetes.io/name: opentelemetry-collector - app.kubernetes.io/instance: example - app.kubernetes.io/version: "0.135.0" - app.kubernetes.io/managed-by: Helm - 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: default diff --git a/charts/opentelemetry-demo/examples/default/rendered/opentelemetry-collector/configmap.yaml b/charts/opentelemetry-demo/examples/default/rendered/opentelemetry-collector/configmap.yaml deleted file mode 100644 index b1b83de942..0000000000 --- a/charts/opentelemetry-demo/examples/default/rendered/opentelemetry-collector/configmap.yaml +++ /dev/null @@ -1,206 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/opentelemetry-collector/templates/configmap.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: otel-collector - namespace: default - labels: - helm.sh/chart: opentelemetry-collector-0.134.0 - app.kubernetes.io/name: opentelemetry-collector - app.kubernetes.io/instance: example - app.kubernetes.io/version: "0.135.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/part-of: opentelemetry-collector - app.kubernetes.io/component: standalone-collector -data: - relay: | - connectors: - spanmetrics: {} - exporters: - debug: {} - opensearch: - http: - endpoint: http://opensearch:9200 - tls: - insecure: true - logs_index: otel-logs - logs_index_time_format: yyyy-MM-dd - otlp: - endpoint: jaeger-collector:4317 - tls: - insecure: true - otlphttp/prometheus: - endpoint: http://prometheus:9090/api/v1/otlp - tls: - insecure: true - extensions: - health_check: - endpoint: ${env:MY_POD_IP}:13133 - processors: - batch: {} - k8sattributes: - extract: - metadata: - - k8s.namespace.name - - k8s.deployment.name - - k8s.statefulset.name - - k8s.daemonset.name - - k8s.cronjob.name - - k8s.job.name - - k8s.node.name - - k8s.pod.name - - k8s.pod.uid - - k8s.pod.start_time - passthrough: false - pod_association: - - sources: - - from: resource_attribute - name: k8s.pod.ip - - sources: - - from: resource_attribute - name: k8s.pod.uid - - sources: - - from: connection - memory_limiter: - check_interval: 5s - limit_percentage: 80 - spike_limit_percentage: 25 - resource: - attributes: - - action: insert - from_attribute: k8s.pod.uid - key: service.instance.id - resourcedetection: - detectors: - - env - - system - transform: - error_mode: ignore - trace_statements: - - context: span - statements: - - replace_pattern(name, "\\?.*", "") - - replace_match(name, "GET /api/products/*", "GET /api/products/{productId}") - receivers: - httpcheck/frontend-proxy: - targets: - - endpoint: http://frontend-proxy:8080 - jaeger: - protocols: - grpc: - endpoint: ${env:MY_POD_IP}:14250 - thrift_compact: - endpoint: ${env:MY_POD_IP}:6831 - thrift_http: - endpoint: ${env:MY_POD_IP}:14268 - nginx: - collection_interval: 10s - endpoint: http://image-provider:8081/status - otlp: - protocols: - grpc: - endpoint: ${env:MY_POD_IP}:4317 - http: - cors: - allowed_origins: - - http://* - - https://* - endpoint: ${env:MY_POD_IP}:4318 - postgresql: - endpoint: postgresql:5432 - metrics: - postgresql.blks_hit: - enabled: true - postgresql.blks_read: - enabled: true - postgresql.deadlocks: - enabled: true - postgresql.tup_deleted: - enabled: true - postgresql.tup_fetched: - enabled: true - postgresql.tup_inserted: - enabled: true - postgresql.tup_returned: - enabled: true - postgresql.tup_updated: - enabled: true - password: otel - tls: - insecure: true - username: root - prometheus: - config: - scrape_configs: - - job_name: opentelemetry-collector - scrape_interval: 10s - static_configs: - - targets: - - ${env:MY_POD_IP}:8888 - redis: - collection_interval: 10s - endpoint: valkey-cart:6379 - username: valkey - zipkin: - endpoint: ${env:MY_POD_IP}:9411 - service: - extensions: - - health_check - pipelines: - logs: - exporters: - - opensearch - - debug - processors: - - k8sattributes - - memory_limiter - - resourcedetection - - resource - - batch - receivers: - - otlp - metrics: - exporters: - - otlphttp/prometheus - - debug - processors: - - k8sattributes - - memory_limiter - - resourcedetection - - resource - - batch - receivers: - - httpcheck/frontend-proxy - - nginx - - otlp - - postgresql - - redis - - spanmetrics - traces: - exporters: - - otlp - - debug - - spanmetrics - processors: - - k8sattributes - - memory_limiter - - resourcedetection - - resource - - transform - - batch - receivers: - - otlp - - jaeger - - zipkin - telemetry: - metrics: - level: detailed - readers: - - periodic: - exporter: - otlp: - endpoint: otel-collector:4318 - protocol: http/protobuf - interval: 10000 - timeout: 5000 diff --git a/charts/opentelemetry-demo/examples/default/rendered/opentelemetry-collector/deployment.yaml b/charts/opentelemetry-demo/examples/default/rendered/opentelemetry-collector/deployment.yaml deleted file mode 100644 index 0f3c0ee78e..0000000000 --- a/charts/opentelemetry-demo/examples/default/rendered/opentelemetry-collector/deployment.yaml +++ /dev/null @@ -1,103 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/opentelemetry-collector/templates/deployment.yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: otel-collector - namespace: default - labels: - helm.sh/chart: opentelemetry-collector-0.134.0 - app.kubernetes.io/name: opentelemetry-collector - app.kubernetes.io/instance: example - app.kubernetes.io/version: "0.135.0" - app.kubernetes.io/managed-by: Helm - 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: example - component: standalone-collector - strategy: - type: RollingUpdate - template: - metadata: - annotations: - checksum/config: 89ab2b74bae6fa5014c8c38576a277e588273c012e42cc485f099bbc2b02a848 - opentelemetry_community_demo: "true" - prometheus.io/scrape: "true" - labels: - app.kubernetes.io/name: opentelemetry-collector - app.kubernetes.io/instance: example - 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 diff --git a/charts/opentelemetry-demo/examples/default/rendered/opentelemetry-collector/service.yaml b/charts/opentelemetry-demo/examples/default/rendered/opentelemetry-collector/service.yaml deleted file mode 100644 index 0da821f866..0000000000 --- a/charts/opentelemetry-demo/examples/default/rendered/opentelemetry-collector/service.yaml +++ /dev/null @@ -1,54 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/opentelemetry-collector/templates/service.yaml -apiVersion: v1 -kind: Service -metadata: - name: otel-collector - namespace: default - labels: - helm.sh/chart: opentelemetry-collector-0.134.0 - app.kubernetes.io/name: opentelemetry-collector - app.kubernetes.io/instance: example - app.kubernetes.io/version: "0.135.0" - app.kubernetes.io/managed-by: Helm - 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: example - component: standalone-collector - internalTrafficPolicy: Cluster diff --git a/charts/opentelemetry-demo/examples/default/rendered/opentelemetry-collector/serviceaccount.yaml b/charts/opentelemetry-demo/examples/default/rendered/opentelemetry-collector/serviceaccount.yaml deleted file mode 100644 index 675701aa20..0000000000 --- a/charts/opentelemetry-demo/examples/default/rendered/opentelemetry-collector/serviceaccount.yaml +++ /dev/null @@ -1,15 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/opentelemetry-collector/templates/serviceaccount.yaml -apiVersion: v1 -kind: ServiceAccount -metadata: - name: otel-collector - namespace: default - labels: - helm.sh/chart: opentelemetry-collector-0.134.0 - app.kubernetes.io/name: opentelemetry-collector - app.kubernetes.io/instance: example - app.kubernetes.io/version: "0.135.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/part-of: opentelemetry-collector - app.kubernetes.io/component: standalone-collector diff --git a/charts/opentelemetry-demo/examples/default/rendered/opentelemetry-kube-stack/clusterrole.yaml b/charts/opentelemetry-demo/examples/default/rendered/opentelemetry-kube-stack/clusterrole.yaml new file mode 100644 index 0000000000..eabfef18d2 --- /dev/null +++ b/charts/opentelemetry-demo/examples/default/rendered/opentelemetry-kube-stack/clusterrole.yaml @@ -0,0 +1,140 @@ +--- +# Source: opentelemetry-demo/charts/opentelemetry-kube-stack/templates/clusterrole.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: example-collector +rules: +- apiGroups: [""] + resources: + - namespaces + - nodes + - nodes/proxy + - nodes/metrics + - nodes/stats + - services + - endpoints + - pods + - events + - secrets + - persistentvolumeclaims + - persistentvolumes + verbs: ["get", "list", "watch"] +- apiGroups: ["monitoring.coreos.com"] + resources: + - servicemonitors + - podmonitors + - scrapeconfigs + - probes + verbs: ["get", "list", "watch"] +- apiGroups: + - extensions + resources: + - ingresses + verbs: ["get", "list", "watch"] +- apiGroups: + - apps + resources: + - daemonsets + - deployments + - replicasets + - statefulsets + verbs: ["get", "list", "watch"] +- apiGroups: + - networking.k8s.io + resources: + - ingresses + verbs: ["get", "list", "watch"] +- apiGroups: ["discovery.k8s.io"] + resources: + - endpointslices + verbs: ["get", "list", "watch"] +- nonResourceURLs: ["/metrics", "/metrics/cadvisor"] + verbs: ["get"] + +- verbs: + - get + - list + - watch + - create + - update + - patch + - delete + apiGroups: + - coordination.k8s.io + resources: + - leases +- apiGroups: + - "" + resources: + - events + - namespaces + - namespaces/status + - nodes + - nodes/spec + - pods + - pods/status + - replicationcontrollers + - replicationcontrollers/status + - resourcequotas + - services + verbs: + - get + - list + - watch +- apiGroups: + - apps + resources: + - daemonsets + - deployments + - replicasets + - statefulsets + verbs: + - get + - list + - watch +- apiGroups: + - extensions + resources: + - daemonsets + - deployments + - replicasets + verbs: + - get + - list + - watch +- apiGroups: + - batch + resources: + - jobs + - cronjobs + verbs: + - get + - list + - watch +- apiGroups: + - autoscaling + resources: + - horizontalpodautoscalers + verbs: + - get + - list + - watch +- apiGroups: ["events.k8s.io"] + resources: ["events"] + verbs: ["watch", "list"] +--- +# Source: opentelemetry-demo/charts/opentelemetry-kube-stack/templates/clusterrole.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: otel-demo-daemon +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: example-collector +subjects: +- kind: ServiceAccount + # quirk of the Operator + name: "otel-demo-daemon-collector" + namespace: default diff --git a/charts/opentelemetry-demo/examples/default/rendered/opentelemetry-kube-stack/collector.yaml b/charts/opentelemetry-demo/examples/default/rendered/opentelemetry-kube-stack/collector.yaml new file mode 100644 index 0000000000..037ac4bb5b --- /dev/null +++ b/charts/opentelemetry-demo/examples/default/rendered/opentelemetry-kube-stack/collector.yaml @@ -0,0 +1,290 @@ +--- +# Source: opentelemetry-demo/charts/opentelemetry-kube-stack/templates/collector.yaml +apiVersion: opentelemetry.io/v1beta1 +kind: OpenTelemetryCollector +metadata: + name: otel-demo-daemon + namespace: default + labels: + helm.sh/chart: opentelemetry-kube-stack-0.11.1 + app.kubernetes.io/version: "0.129.1" + app.kubernetes.io/managed-by: Helm + release: "example" +spec: + managementState: managed + mode: daemonset + config: + connectors: + spanmetrics: {} + exporters: + debug: {} + opensearch: + http: + endpoint: http://opensearch:9200 + tls: + insecure: true + logs_index: otel-logs + logs_index_time_format: yyyy-MM-dd + otlp/jaeger: + endpoint: http://jaeger-collector:4317 + tls: + insecure: true + otlphttp/prometheus: + endpoint: http://prometheus:9090/api/v1/otlp + tls: + insecure: true + extensions: + health_check: + endpoint: 0.0.0.0:13133 + k8s_leader_elector/k8s_cluster: + auth_type: serviceAccount + lease_name: k8s.cluster.receiver.opentelemetry.io + lease_namespace: default + k8s_leader_elector/k8s_objects: + auth_type: serviceAccount + lease_name: k8s.objects.receiver.opentelemetry.io + lease_namespace: default + k8s_observer: + observe_ingresses: true + observe_nodes: true + observe_services: true + processors: + batch: + send_batch_max_size: 1500 + send_batch_size: 1000 + timeout: 1s + k8sattributes: + extract: + labels: + - from: pod + key: app.kubernetes.io/instance + tag_name: k8s.app.instance + - from: pod + key: app.kubernetes.io/component + tag_name: k8s.app.component + metadata: + - k8s.namespace.name + - k8s.pod.name + - k8s.pod.uid + - k8s.node.name + - k8s.pod.start_time + - k8s.deployment.name + - k8s.replicaset.name + - k8s.replicaset.uid + - k8s.daemonset.name + - k8s.daemonset.uid + - k8s.job.name + - k8s.job.uid + - k8s.container.name + - k8s.cronjob.name + - k8s.statefulset.name + - k8s.statefulset.uid + - container.image.tag + - container.image.name + - k8s.cluster.uid + - service.namespace + - service.name + - service.version + - service.instance.id + otel_annotations: true + filter: + node_from_env_var: OTEL_K8S_NODE_NAME + passthrough: false + pod_association: + - sources: + - from: resource_attribute + name: k8s.pod.uid + - sources: + - from: resource_attribute + name: k8s.pod.name + - from: resource_attribute + name: k8s.namespace.name + - from: resource_attribute + name: k8s.node.name + - sources: + - from: resource_attribute + name: k8s.pod.ip + - sources: + - from: resource_attribute + name: k8s.pod.name + - from: resource_attribute + name: k8s.namespace.name + - sources: + - from: connection + resource/hostname: + attributes: + - action: insert + from_attribute: k8s.node.name + key: host.name + resourcedetection/env: + detectors: + - env + - k8snode + override: false + timeout: 2s + transform/fix_nextjs_span_name: + error_mode: ignore + trace_statements: + - context: span + statements: + - replace_pattern(name, "\\?.*", "") + - replace_match(name, "GET /api/products/*", "GET /api/products/{productId}") + receivers: + k8s_cluster: + allocatable_types_to_report: + - cpu + - memory + - storage + auth_type: serviceAccount + collection_interval: 10s + k8s_leader_elector: k8s_leader_elector/k8s_cluster + node_conditions_to_report: + - Ready + - MemoryPressure + - DiskPressure + - NetworkUnavailable + k8sobjects: + k8s_leader_elector: k8s_leader_elector/k8s_objects + objects: + - exclude_watch_type: + - DELETED + group: events.k8s.io + mode: watch + name: events + kubeletstats: + auth_type: serviceAccount + collection_interval: 15s + endpoint: https://${env:OTEL_K8S_NODE_IP}:10250 + extra_metadata_labels: + - container.id + - k8s.volume.type + insecure_skip_verify: true + k8s_api_config: + auth_type: serviceAccount + metric_groups: + - node + - pod + - volume + - container + metrics: + container.cpu.usage: + enabled: true + k8s.node.cpu.usage: + enabled: true + k8s.node.uptime: + enabled: true + k8s.pod.cpu.usage: + enabled: true + k8s.pod.uptime: + enabled: true + otlp: + protocols: + grpc: + endpoint: 0.0.0.0:4317 + http: + cors: + allowed_origins: + - http://* + - https://* + endpoint: 0.0.0.0:4318 + receiver_creator/k8s: + discovery: + enabled: true + watch_observers: + - k8s_observer + service: + extensions: + - health_check + - k8s_observer + - k8s_leader_elector/k8s_objects + - k8s_leader_elector/k8s_cluster + pipelines: + logs: + exporters: + - opensearch + processors: + - k8sattributes + - resourcedetection/env + - resource/hostname + - batch + receivers: + - otlp + - k8sobjects + metrics: + exporters: + - otlphttp/prometheus + processors: + - k8sattributes + - resourcedetection/env + - resource/hostname + - batch + receivers: + - otlp + - receiver_creator/k8s + - spanmetrics + - kubeletstats + - k8s_cluster + traces: + exporters: + - otlp/jaeger + - spanmetrics + processors: + - k8sattributes + - resourcedetection/env + - resource/hostname + - transform/fix_nextjs_span_name + - batch + receivers: + - otlp + telemetry: + logs: + level: info + metrics: + readers: + - pull: + exporter: + prometheus: + host: 0.0.0.0 + port: 8888 + image: "otel/opentelemetry-collector-contrib:0.134.1" + imagePullPolicy: IfNotPresent + upgradeStrategy: automatic + terminationGracePeriodSeconds: 30 + resources: + limits: + cpu: 200m + memory: 500Mi + requests: + cpu: 100m + memory: 250Mi + securityContext: + runAsGroup: 0 + runAsUser: 0 + targetAllocator: + enabled: false + env: + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + - name: OTEL_K8S_NODE_IP + valueFrom: + fieldRef: + fieldPath: status.hostIP + - name: OTEL_K8S_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.namespace + - name: OTEL_K8S_POD_NAME + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.name + - name: OTEL_K8S_POD_IP + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: status.podIP + - name: OTEL_RESOURCE_ATTRIBUTES + value: "k8s.cluster.name=otel-demo-stack" diff --git a/charts/opentelemetry-demo/examples/default/rendered/opentelemetry-kube-stack/hooks.yaml b/charts/opentelemetry-demo/examples/default/rendered/opentelemetry-kube-stack/hooks.yaml new file mode 100644 index 0000000000..21e0f367a0 --- /dev/null +++ b/charts/opentelemetry-demo/examples/default/rendered/opentelemetry-kube-stack/hooks.yaml @@ -0,0 +1,64 @@ +--- +# Source: opentelemetry-demo/charts/opentelemetry-kube-stack/templates/hooks.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: delete-resources-sa + annotations: + "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded +--- +# Source: opentelemetry-demo/charts/opentelemetry-kube-stack/templates/hooks.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: delete-resources-role + annotations: + "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded +rules: + - apiGroups: + - opentelemetry.io + resources: + - instrumentations + - opampbridges + - opentelemetrycollectors + verbs: + - get + - list + - delete +--- +# Source: opentelemetry-demo/charts/opentelemetry-kube-stack/templates/hooks.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: delete-resources-rolebinding + annotations: + "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: delete-resources-role +subjects: + - kind: ServiceAccount + name: delete-resources-sa +--- +# Source: opentelemetry-demo/charts/opentelemetry-kube-stack/templates/hooks.yaml +apiVersion: batch/v1 +kind: Job +metadata: + name: opentelemetry-kube-stack-pre-delete-job + annotations: + "helm.sh/hook": pre-delete + "helm.sh/hook-delete-policy": hook-succeeded,hook-failed +spec: + template: + spec: + restartPolicy: Never + serviceAccountName: delete-resources-sa + containers: + - name: delete-resources + image: "rancher/kubectl:v1.34.1" + args: + - "delete" + - "instrumentations,opampbridges,opentelemetrycollectors" + - "-l" + - "helm.sh/chart=opentelemetry-kube-stack-0.11.1" diff --git a/charts/opentelemetry-demo/examples/default/rendered/product-catalog-products.yaml b/charts/opentelemetry-demo/examples/default/rendered/product-catalog-products.yaml index 047185144c..5b0c601396 100644 --- a/charts/opentelemetry-demo/examples/default/rendered/product-catalog-products.yaml +++ b/charts/opentelemetry-demo/examples/default/rendered/product-catalog-products.yaml @@ -6,7 +6,7 @@ metadata: name: product-catalog-products namespace: default labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" diff --git a/charts/opentelemetry-demo/examples/default/rendered/prometheus/cm.yaml b/charts/opentelemetry-demo/examples/default/rendered/prometheus/cm.yaml index a5e59fac28..6218e3c0a7 100644 --- a/charts/opentelemetry-demo/examples/default/rendered/prometheus/cm.yaml +++ b/charts/opentelemetry-demo/examples/default/rendered/prometheus/cm.yaml @@ -53,6 +53,7 @@ data: - postgresql.schema.name - postgresql.table.name - postgresql.index.name + - database rule_files: - /etc/config/recording_rules.yml - /etc/config/alerting_rules.yml diff --git a/charts/opentelemetry-demo/examples/default/rendered/serviceaccount.yaml b/charts/opentelemetry-demo/examples/default/rendered/serviceaccount.yaml index 64279d14a2..b72148e91d 100644 --- a/charts/opentelemetry-demo/examples/default/rendered/serviceaccount.yaml +++ b/charts/opentelemetry-demo/examples/default/rendered/serviceaccount.yaml @@ -5,7 +5,7 @@ kind: ServiceAccount metadata: name: example labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" diff --git a/charts/opentelemetry-demo/examples/kubernetes-infra-monitoring/rendered/component.yaml b/charts/opentelemetry-demo/examples/kubernetes-infra-monitoring/rendered/component.yaml index 01ccfa7a22..6a35e410b3 100644 --- a/charts/opentelemetry-demo/examples/kubernetes-infra-monitoring/rendered/component.yaml +++ b/charts/opentelemetry-demo/examples/kubernetes-infra-monitoring/rendered/component.yaml @@ -5,7 +5,7 @@ kind: Service metadata: name: ad labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: ad @@ -30,7 +30,7 @@ kind: Service metadata: name: cart labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: cart @@ -55,7 +55,7 @@ kind: Service metadata: name: checkout labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: checkout @@ -80,7 +80,7 @@ kind: Service metadata: name: currency labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: currency @@ -105,7 +105,7 @@ kind: Service metadata: name: email labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: email @@ -130,7 +130,7 @@ kind: Service metadata: name: flagd labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: flagd @@ -161,7 +161,7 @@ kind: Service metadata: name: frontend labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: frontend @@ -186,7 +186,7 @@ kind: Service metadata: name: frontend-proxy labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: frontend-proxy @@ -211,7 +211,7 @@ kind: Service metadata: name: image-provider labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: image-provider @@ -236,7 +236,7 @@ kind: Service metadata: name: kafka labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: kafka @@ -264,7 +264,7 @@ kind: Service metadata: name: load-generator labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: load-generator @@ -289,7 +289,7 @@ kind: Service metadata: name: payment labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: payment @@ -314,7 +314,7 @@ kind: Service metadata: name: postgresql labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: postgresql @@ -339,7 +339,7 @@ kind: Service metadata: name: product-catalog labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: product-catalog @@ -364,7 +364,7 @@ kind: Service metadata: name: quote labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: quote @@ -389,7 +389,7 @@ kind: Service metadata: name: recommendation labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: recommendation @@ -414,7 +414,7 @@ kind: Service metadata: name: shipping labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: shipping @@ -439,7 +439,7 @@ kind: Service metadata: name: valkey-cart labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: valkey-cart @@ -464,7 +464,7 @@ kind: Deployment metadata: name: accounting labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: accounting @@ -488,6 +488,9 @@ spec: app.kubernetes.io/component: accounting app.kubernetes.io/name: accounting + annotations: + resource.opentelemetry.io/service.name: accounting + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -499,21 +502,40 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - 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_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4318 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: http/protobuf - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.1.3 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 120Mi @@ -533,7 +555,7 @@ kind: Deployment metadata: name: ad labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: ad @@ -557,6 +579,9 @@ spec: app.kubernetes.io/component: ad app.kubernetes.io/name: ad + annotations: + resource.opentelemetry.io/service.name: ad + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -572,23 +597,42 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - 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_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4318 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: http/protobuf - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.1.3 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 300Mi @@ -601,7 +645,7 @@ kind: Deployment metadata: name: cart labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: cart @@ -625,6 +669,9 @@ spec: app.kubernetes.io/component: cart app.kubernetes.io/name: cart + annotations: + resource.opentelemetry.io/service.name: cart + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -640,11 +687,28 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: CART_PORT value: "8080" - name: ASPNETCORE_URLS @@ -655,10 +719,8 @@ spec: 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 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 160Mi @@ -679,7 +741,7 @@ kind: Deployment metadata: name: checkout labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: checkout @@ -703,6 +765,9 @@ spec: app.kubernetes.io/component: checkout app.kubernetes.io/name: checkout + annotations: + resource.opentelemetry.io/service.name: checkout + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -718,11 +783,28 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: CHECKOUT_PORT value: "8080" - name: CART_ADDR @@ -743,12 +825,10 @@ spec: 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 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 20Mi @@ -768,7 +848,7 @@ kind: Deployment metadata: name: currency labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: currency @@ -792,6 +872,9 @@ spec: app.kubernetes.io/component: currency app.kubernetes.io/name: currency + annotations: + resource.opentelemetry.io/service.name: currency + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -807,19 +890,34 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - 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 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 20Mi @@ -832,7 +930,7 @@ kind: Deployment metadata: name: email labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: email @@ -856,6 +954,9 @@ spec: app.kubernetes.io/component: email app.kubernetes.io/name: email + annotations: + resource.opentelemetry.io/service.name: email + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -871,23 +972,44 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: EMAIL_PORT value: "8080" - name: APP_ENV value: production - - name: OTEL_EXPORTER_OTLP_ENDPOINT - value: http://$(OTEL_COLLECTOR_NAME):4318 + - name: OTEL_EXPORTER_OTLP_TRACES_ENDPOINT + value: http://otel-demo-daemon-collector:4318/v1/traces - name: FLAGD_HOST value: flagd - name: FLAGD_PORT value: "8013" + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4318 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: http/protobuf - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.1.3 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 100Mi @@ -900,7 +1022,7 @@ kind: Deployment metadata: name: flagd labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: flagd @@ -924,6 +1046,9 @@ spec: app.kubernetes.io/component: flagd app.kubernetes.io/name: flagd + annotations: + resource.opentelemetry.io/service.name: flagd + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -950,19 +1075,36 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: FLAGD_METRICS_EXPORTER value: otel - name: FLAGD_OTEL_COLLECTOR_URI - value: $(OTEL_COLLECTOR_NAME):4317 + value: otel-demo-daemon-collector:4317 - name: GOMEMLIMIT value: 60MiB - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.1.3 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 75Mi @@ -981,23 +1123,42 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - 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_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4318 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: http/protobuf - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.1.3 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 250Mi @@ -1029,7 +1190,7 @@ kind: Deployment metadata: name: fraud-detection labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: fraud-detection @@ -1053,6 +1214,9 @@ spec: app.kubernetes.io/component: fraud-detection app.kubernetes.io/name: fraud-detection + annotations: + resource.opentelemetry.io/service.name: fraud-detection + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -1064,25 +1228,44 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - 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_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4318 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: http/protobuf - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.1.3 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 300Mi @@ -1102,7 +1285,7 @@ kind: Deployment metadata: name: frontend labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: frontend @@ -1126,6 +1309,9 @@ spec: app.kubernetes.io/component: frontend app.kubernetes.io/name: frontend + annotations: + resource.opentelemetry.io/service.name: frontend + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -1141,11 +1327,28 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: FRONTEND_PORT value: "8080" - name: PORT @@ -1172,16 +1375,12 @@ spec: 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 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 250Mi @@ -1198,7 +1397,7 @@ kind: Deployment metadata: name: frontend-proxy labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: frontend-proxy @@ -1222,6 +1421,14 @@ spec: app.kubernetes.io/component: frontend-proxy app.kubernetes.io/name: frontend-proxy + annotations: + io.opentelemetry.discovery.metrics/config: | + targets: + - endpoint: "http://`endpoint`" # FIXME why isn't `endpoint` interpolated? + io.opentelemetry.discovery.metrics/enabled: "true" + io.opentelemetry.discovery.metrics/scraper: httpcheck + resource.opentelemetry.io/service.name: frontend-proxy + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -1237,11 +1444,28 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: ENVOY_PORT value: "8080" - name: ENVOY_ADMIN_PORT @@ -1274,14 +1498,12 @@ spec: 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 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 65Mi @@ -1298,7 +1520,7 @@ kind: Deployment metadata: name: image-provider labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: image-provider @@ -1322,6 +1544,15 @@ spec: app.kubernetes.io/component: image-provider app.kubernetes.io/name: image-provider + annotations: + io.opentelemetry.discovery.metrics/config: | + endpoint: "http://`endpoint`/status" + collection_interval: "10s" + timeout: "20s" + io.opentelemetry.discovery.metrics/enabled: "true" + io.opentelemetry.discovery.metrics/scraper: nginx + resource.opentelemetry.io/service.name: image-provider + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -1337,19 +1568,34 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - 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 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 50Mi @@ -1362,7 +1608,7 @@ kind: Deployment metadata: name: kafka labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: kafka @@ -1386,6 +1632,9 @@ spec: app.kubernetes.io/component: kafka app.kubernetes.io/name: kafka + annotations: + resource.opentelemetry.io/service.name: kafka + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -1403,15 +1652,30 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - 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 @@ -1420,8 +1684,12 @@ spec: value: CONTROLLER - name: KAFKA_CONTROLLER_QUORUM_VOTERS value: 1@kafka:9093 + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4318 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: http/protobuf - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.1.3 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 600Mi @@ -1438,7 +1706,7 @@ kind: Deployment metadata: name: load-generator labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: load-generator @@ -1462,6 +1730,9 @@ spec: app.kubernetes.io/component: load-generator app.kubernetes.io/name: load-generator + annotations: + resource.opentelemetry.io/service.name: load-generator + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -1477,11 +1748,28 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: LOCUST_WEB_HOST value: 0.0.0.0 - name: LOCUST_WEB_PORT @@ -1506,10 +1794,8 @@ spec: 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 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 1500Mi @@ -1522,7 +1808,7 @@ kind: Deployment metadata: name: payment labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: payment @@ -1546,6 +1832,9 @@ spec: app.kubernetes.io/component: payment app.kubernetes.io/name: payment + annotations: + resource.opentelemetry.io/service.name: payment + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -1561,21 +1850,36 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - 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 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 120Mi @@ -1592,7 +1896,7 @@ kind: Deployment metadata: name: postgresql labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: postgresql @@ -1616,6 +1920,31 @@ spec: app.kubernetes.io/component: postgresql app.kubernetes.io/name: postgresql + annotations: + io.opentelemetry.discovery.metrics/config: | + username: root + password: otel + metrics: + postgresql.blks_hit: + enabled: true + postgresql.blks_read: + enabled: true + postgresql.tup_fetched: + enabled: true + postgresql.tup_returned: + enabled: true + postgresql.tup_inserted: + enabled: true + postgresql.tup_updated: + enabled: true + postgresql.tup_deleted: + enabled: true + postgresql.deadlocks: + enabled: true + tls: + insecure: true + io.opentelemetry.discovery.metrics/enabled: "true" + io.opentelemetry.discovery.metrics/scraper: postgresql spec: serviceAccountName: example containers: @@ -1631,11 +1960,28 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: POSTGRES_USER value: root - name: POSTGRES_PASSWORD @@ -1643,7 +1989,7 @@ spec: - name: POSTGRES_DB value: otel - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.1.3 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 100Mi @@ -1656,7 +2002,7 @@ kind: Deployment metadata: name: product-catalog labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: product-catalog @@ -1680,6 +2026,9 @@ spec: app.kubernetes.io/component: product-catalog app.kubernetes.io/name: product-catalog + annotations: + resource.opentelemetry.io/service.name: product-catalog + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -1695,11 +2044,28 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: PRODUCT_CATALOG_PORT value: "8080" - name: PRODUCT_CATALOG_RELOAD_INTERVAL @@ -1708,12 +2074,10 @@ spec: 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 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 20Mi @@ -1731,7 +2095,7 @@ kind: Deployment metadata: name: quote labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: quote @@ -1755,6 +2119,9 @@ spec: app.kubernetes.io/component: quote app.kubernetes.io/name: quote + annotations: + resource.opentelemetry.io/service.name: quote + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -1770,11 +2137,28 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: QUOTE_PORT value: "8080" - name: OTEL_PHP_AUTOLOAD_ENABLED @@ -1782,9 +2166,11 @@ spec: - name: OTEL_PHP_INTERNAL_METRICS_ENABLED value: "true" - name: OTEL_EXPORTER_OTLP_ENDPOINT - value: http://$(OTEL_COLLECTOR_NAME):4318 + value: http://otel-demo-daemon-collector:4318 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: http/protobuf - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.1.3 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 40Mi @@ -1801,7 +2187,7 @@ kind: Deployment metadata: name: recommendation labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: recommendation @@ -1825,6 +2211,9 @@ spec: app.kubernetes.io/component: recommendation app.kubernetes.io/name: recommendation + annotations: + resource.opentelemetry.io/service.name: recommendation + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -1840,11 +2229,28 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: RECOMMENDATION_PORT value: "8080" - name: PRODUCT_CATALOG_ADDR @@ -1857,10 +2263,8 @@ spec: 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 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 500Mi @@ -1873,7 +2277,7 @@ kind: Deployment metadata: name: shipping labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: shipping @@ -1897,6 +2301,9 @@ spec: app.kubernetes.io/component: shipping app.kubernetes.io/name: shipping + annotations: + resource.opentelemetry.io/service.name: shipping + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -1912,19 +2319,34 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - 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 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 20Mi @@ -1937,7 +2359,7 @@ kind: Deployment metadata: name: valkey-cart labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: valkey-cart @@ -1961,6 +2383,12 @@ spec: app.kubernetes.io/component: valkey-cart app.kubernetes.io/name: valkey-cart + annotations: + io.opentelemetry.discovery.metrics/config: | + username: valkey + collection_interval: 10s + io.opentelemetry.discovery.metrics/enabled: "true" + io.opentelemetry.discovery.metrics/scraper: redis spec: serviceAccountName: example containers: @@ -1976,13 +2404,30 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.1.3 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 20Mi diff --git a/charts/opentelemetry-demo/examples/kubernetes-infra-monitoring/rendered/flagd-config.yaml b/charts/opentelemetry-demo/examples/kubernetes-infra-monitoring/rendered/flagd-config.yaml index 1a64e1f8c3..04c58a9e4d 100644 --- a/charts/opentelemetry-demo/examples/kubernetes-infra-monitoring/rendered/flagd-config.yaml +++ b/charts/opentelemetry-demo/examples/kubernetes-infra-monitoring/rendered/flagd-config.yaml @@ -6,7 +6,7 @@ metadata: name: flagd-config namespace: default labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" diff --git a/charts/opentelemetry-demo/examples/kubernetes-infra-monitoring/rendered/grafana-config.yaml b/charts/opentelemetry-demo/examples/kubernetes-infra-monitoring/rendered/grafana-config.yaml index 54875bb9fb..ea732aba6b 100644 --- a/charts/opentelemetry-demo/examples/kubernetes-infra-monitoring/rendered/grafana-config.yaml +++ b/charts/opentelemetry-demo/examples/kubernetes-infra-monitoring/rendered/grafana-config.yaml @@ -6,7 +6,7 @@ metadata: name: grafana-alerting namespace: default labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" @@ -15,7 +15,101 @@ metadata: grafana_alert: "1" data: - {} + cart-service-alerting.yaml: | + # Copyright The OpenTelemetry Authors + # SPDX-License-Identifier: Apache-2.0 + + --- + apiVersion: 1 + groups: + - orgId: 1 + name: otel-demo + folder: cart + interval: 1m + rules: + - uid: des78nlna99tsf + title: CartAddItemHighLatency + condition: p95_threshold + data: + - refId: p95_duration + relativeTimeRange: + from: 600 + to: 0 + datasourceUid: webstore-metrics + model: + editorMode: code + expr: |- + histogram_quantile( + 0.95, + sum by (deployment_environment_name, service_namespace, service_name, service_instance_id, http_route, http_request_method, le) ( + rate( + http_server_request_duration_seconds_bucket{ + deployment_environment_name="demo", + service_namespace="otel-demo", + service_name="cart", + http_request_method="POST", + http_route="/oteldemo.CartService/AddItem" + }[5m] + ) + ) + ) + instant: true + interval: "" + intervalMs: 1000 + legendFormat: __auto + maxDataPoints: 43200 + range: false + refId: p95_duration + - refId: p95_threshold + datasourceUid: __expr__ + model: + conditions: + - evaluator: + params: + - 0.0001 + type: gt + operator: + type: and + query: + params: + - C + reducer: + params: [] + type: last + type: query + datasource: + type: __expr__ + uid: __expr__ + expression: p95_duration + intervalMs: 1000 + maxDataPoints: 43200 + refId: p95_threshold + type: threshold + dashboardUid: febljk0a32qyoa + panelId: 17 + noDataState: NoData + execErrState: Error + for: 1m + keepFiringFor: 2m + annotations: + description: |- + The 95th percentile response time for operation {{ $labels.service_namespace + }}/{{ $labels.service_name }} "{{ $labels.http_request_method }} {{ + $labels.http_route }}" has been + above xxx seconds for 2 minutes on {{ $labels.service_instance_id}}. Current + value: {{ .Value | humanizeDuration }}. + summary: |- + High P95 for {{ $labels.service_namespace }}/{{ $labels.service_name }} "{{ + $labels.http_request_method }} {{ $labels.http_route }}" + labels: + service_name: cart + service_namespace: otel-demo + deployment_environment_name: demo + severity: warning + team_name: webstore + isPaused: false + notification_settings: + receiver: grafana-default-email --- # Source: opentelemetry-demo/templates/grafana-config.yaml apiVersion: v1 @@ -24,7 +118,7 @@ metadata: name: grafana-dashboard-nginx-metrics namespace: default labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" @@ -382,7 +476,7 @@ metadata: name: grafana-dashboard-apm-dashboard namespace: default labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" @@ -418,7 +512,7 @@ data: "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 1, - "id": 5, + "id": 1, "links": [], "panels": [ { @@ -443,7 +537,7 @@ data: "content": "

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

\n", "mode": "html" }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "title": "", "type": "text" }, @@ -501,7 +595,7 @@ data: "textMode": "auto", "wideLayout": true }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "datasource": { @@ -570,6 +664,7 @@ data: "type": "log" }, "showPoints": "auto", + "showValues": false, "spanNulls": false, "stacking": { "group": "A", @@ -619,7 +714,7 @@ data: "sort": "none" } }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "datasource": { @@ -723,6 +818,7 @@ data: "type": "linear" }, "showPoints": "auto", + "showValues": false, "spanNulls": false, "stacking": { "group": "A", @@ -771,7 +867,7 @@ data: "sort": "none" } }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "datasource": { @@ -846,6 +942,7 @@ data: "type": "log" }, "showPoints": "auto", + "showValues": false, "spanNulls": false, "stacking": { "group": "A", @@ -895,7 +992,7 @@ data: "sort": "none" } }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "datasource": { @@ -961,7 +1058,7 @@ data: }, "viewMode": "list" }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "title": "Alerts", "type": "alertlist" }, @@ -981,6 +1078,9 @@ data: "cellOptions": { "type": "auto" }, + "footer": { + "reducers": [] + }, "inspect": false }, "mappings": [], @@ -1051,14 +1151,6 @@ data: "id": 21, "options": { "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, "showHeader": true, "sortBy": [ { @@ -1067,7 +1159,7 @@ data: } ] }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "datasource": { @@ -1175,6 +1267,9 @@ data: "cellOptions": { "type": "auto" }, + "footer": { + "reducers": [] + }, "inspect": false }, "mappings": [], @@ -1241,14 +1336,6 @@ data: "id": 27, "options": { "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, "showHeader": true, "sortBy": [ { @@ -1257,7 +1344,7 @@ data: } ] }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "datasource": { @@ -1379,6 +1466,9 @@ data: "cellOptions": { "type": "auto" }, + "footer": { + "reducers": [] + }, "inspect": false }, "mappings": [], @@ -1445,17 +1535,9 @@ data: "id": 23, "options": { "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, "showHeader": true }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "datasource": { @@ -1565,6 +1647,9 @@ data: "cellOptions": { "type": "auto" }, + "footer": { + "reducers": [] + }, "inspect": false }, "mappings": [], @@ -1631,18 +1716,10 @@ data: "id": 24, "options": { "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, "showHeader": true, "sortBy": [] }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "datasource": { @@ -1758,6 +1835,9 @@ data: "cellOptions": { "type": "auto" }, + "footer": { + "reducers": [] + }, "inspect": false }, "mappings": [], @@ -1824,17 +1904,9 @@ data: "id": 32, "options": { "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, "showHeader": true }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "datasource": { @@ -1939,7 +2011,7 @@ data: }, "id": 42, "panels": [], - "title": "Service instances", + "title": "Infrastructure", "type": "row" }, { @@ -1957,6 +2029,9 @@ data: "cellOptions": { "type": "auto" }, + "footer": { + "reducers": [] + }, "inspect": false }, "mappings": [], @@ -1990,7 +2065,7 @@ data: { "matcher": { "id": "byName", - "options": "Host Memory" + "options": "Host Used Memory" }, "properties": [ { @@ -2002,7 +2077,7 @@ data: ] }, "gridPos": { - "h": 4, + "h": 3, "w": 24, "x": 0, "y": 27 @@ -2010,26 +2085,18 @@ data: "id": 41, "options": { "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, "frameIndex": 1, "showHeader": true }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "editorMode": "code", - "expr": "sum by (service_instance_id_host_name) (\n label_join(\n (\n sum by (service_instance_id, host_name) (\n rate(system_cpu_time_seconds_total{job=\"\", state!=\"idle\"}[$__rate_interval])\n )\n * on(host_name) group_left(service_instance_id)\n target_info{service_name=\"${service_name}\"}\n ),\n \"service_instance_id_host_name\",\n \" / \",\n \"service_instance_id\",\n \"host_name\"\n )\n)", + "expr": "sum by (host_name) (\n rate(system_cpu_time_seconds_total{service_name=\"\", state!=\"idle\"}[$__rate_interval])\n)\n* on(host_name) \ngroup by (host_name) (\n target_info{service_name=\"${service_name}\", service_instance_id!=\"\"}\n)", "hide": false, "legendFormat": "__auto", "range": true, - "refId": "cpu_time_percentage" + "refId": "cpu_time_pct" }, { "datasource": { @@ -2037,7 +2104,7 @@ data: "uid": "webstore-metrics" }, "editorMode": "code", - "expr": "sum by (service_instance_id_host_name) (\n label_join(\n (\n (\n sum by (service_instance_id, host_name) (\n system_memory_usage_bytes{job=\"\", state!=\"free\"}\n )\n /\n sum by (service_instance_id, host_name) (\n system_memory_usage_bytes{job=\"\"}\n )\n )\n * on(host_name) group_left(service_instance_id) (\n target_info{service_name=\"${service_name}\"}\n )\n ),\n \"service_instance_id_host_name\",\n \" / \",\n \"service_instance_id\",\n \"host_name\"\n )\n)", + "expr": " (\n (\n sum by (host_name) (\n system_memory_usage_bytes{service_name=\"\", state=\"used\"}\n )\n /\n sum by (host_name) (\n system_memory_usage_bytes{service_name=\"\"}\n )\n )\n * on(host_name) (\n group by (host_name) (\n target_info{service_name=\"${service_name}\"}\n )\n )\n )\n", "hide": false, "instant": false, "legendFormat": "__auto", @@ -2045,7 +2112,7 @@ data: "refId": "memory_usage_pct" } ], - "title": "Service instance / host", + "title": "", "transformations": [ { "id": "timeSeriesTable", @@ -2053,6 +2120,9 @@ data: "A": { "timeField": "Time" }, + "cpu_time_pct": { + "timeField": "Time" + }, "cpu_time_percentage": { "timeField": "Time" }, @@ -2064,7 +2134,7 @@ data: { "id": "joinByField", "options": { - "byField": "service_instance_id_host_name", + "byField": "host_name", "mode": "outer" } }, @@ -2075,8 +2145,152 @@ data: "includeByName": {}, "indexByName": {}, "renameByName": { + "Trend #cpu_time_pct": "Host CPU", + "Trend #cpu_time_percentage": "Host CPU", + "Trend #memory_usage_pct": "Host Used Memory", + "host_name": "Host", + "service_instance_id_host_name": "Instance / Host" + } + } + } + ], + "type": "table" + }, + { + "datasource": { + "type": "prometheus", + "uid": "webstore-metrics" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "footer": { + "reducers": [] + }, + "inspect": false + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Pod CPU usage" + }, + "properties": [ + { + "id": "unit", + "value": "percentunit" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Pod Memory Usage" + }, + "properties": [ + { + "id": "unit", + "value": "decbytes" + } + ] + } + ] + }, + "gridPos": { + "h": 3, + "w": 24, + "x": 0, + "y": 30 + }, + "id": 43, + "options": { + "cellHeight": "sm", + "frameIndex": 1, + "showHeader": true + }, + "pluginVersion": "12.2.0", + "targets": [ + { + "editorMode": "code", + "expr": "sum by (k8s_pod_name) (\n rate(k8s_pod_cpu_time_seconds_total{}[$__rate_interval])\n)\n* on(k8s_pod_name) \ngroup by (k8s_pod_name) (\n target_info{service_name=\"${service_name}\", service_instance_id!=\"\"}\n)\n", + "hide": false, + "legendFormat": "__auto", + "range": true, + "refId": "cpu_time_pct" + }, + { + "datasource": { + "type": "prometheus", + "uid": "webstore-metrics" + }, + "editorMode": "code", + "expr": "\nsum by (k8s_pod_name) (\n k8s_pod_memory_working_set_bytes{}\n)\n* on(k8s_pod_name)\ngroup by (k8s_pod_name) (\n target_info{service_name=\"${service_name}\", service_instance_id!=\"\"}\n)\n", + "hide": false, + "instant": false, + "legendFormat": "__auto", + "range": true, + "refId": "memory_usage_bytes" + } + ], + "title": "", + "transformations": [ + { + "id": "timeSeriesTable", + "options": { + "A": { + "timeField": "Time" + }, + "cpu_time_percentage": { + "timeField": "Time" + }, + "memory_usage_pct": { + "timeField": "Time" + } + } + }, + { + "id": "joinByField", + "options": { + "byField": "k8s_pod_name", + "mode": "outer" + } + }, + { + "id": "organize", + "options": { + "excludeByName": { + "service_instance_id": true + }, + "includeByName": {}, + "indexByName": {}, + "renameByName": { + "Trend #cpu_time_pct": "Pod CPU usage", "Trend #cpu_time_percentage": "Host CPU", + "Trend #memory_usage_bytes": "Pod Memory Usage", "Trend #memory_usage_pct": "Host Memory", + "k8s_pod_name": "Kubernetes Pod Name", "service_instance_id_host_name": "Instance / Host" } } @@ -2090,7 +2304,7 @@ data: "h": 1, "w": 24, "x": 0, - "y": 31 + "y": 33 }, "id": 25, "panels": [], @@ -2113,6 +2327,9 @@ data: "cellOptions": { "type": "auto" }, + "footer": { + "reducers": [] + }, "inspect": false }, "mappings": [], @@ -2174,23 +2391,15 @@ data: "h": 15, "w": 24, "x": 0, - "y": 32 + "y": 34 }, "id": 26, "options": { "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, "showHeader": true, "sortBy": [] }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "alias": "", @@ -2257,156 +2466,150 @@ data: "type": "table" }, { - "collapsed": true, + "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, - "y": 47 + "y": 49 }, "id": 29, - "panels": [ - { - "datasource": { - "type": "jaeger", - "uid": "${jaeger_datasource}" + "panels": [], + "title": "Traces", + "type": "row" + }, + { + "datasource": { + "type": "jaeger", + "uid": "${jaeger_datasource}" + }, + "description": "Traces containing a span emitted by the service", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" }, - "description": "Traces containing a span emitted by the service", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "cellOptions": { - "type": "auto" - }, - "inspect": false - }, - "mappings": [], - "noValue": "No traces", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": 0 - }, - { - "color": "red", - "value": 80 - } - ] - } + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" }, - "overrides": [ + "footer": { + "reducers": [] + }, + "inspect": false + }, + "mappings": [], + "noValue": "No traces", + "thresholds": { + "mode": "absolute", + "steps": [ { - "matcher": { - "id": "byName", - "options": "Trace Service" - }, - "properties": [ - { - "id": "custom.hidden", - "value": true - } - ] + "color": "green", + "value": 0 }, { - "matcher": { - "id": "byName", - "options": "Span ID" - }, - "properties": [ - { - "id": "custom.hidden", - "value": false - } - ] - }, + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Trace Service" + }, + "properties": [ { - "matcher": { - "id": "byName", - "options": "deployment.environment.name" - }, - "properties": [ - { - "id": "custom.hidden", - "value": true - } - ] - }, + "id": "custom.hideFrom.viz", + "value": true + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Span ID" + }, + "properties": [ { - "matcher": { - "id": "byName", - "options": "service.name" - }, - "properties": [ - { - "id": "custom.hidden", - "value": true - } - ] - }, + "id": "custom.hideFrom.viz", + "value": false + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "deployment.environment.name" + }, + "properties": [ { - "matcher": { - "id": "byName", - "options": "service.namespace" - }, - "properties": [ - { - "id": "custom.hidden", - "value": true - } - ] + "id": "custom.hideFrom.viz", + "value": true } ] }, - "gridPos": { - "h": 8, - "w": 15, - "x": 0, - "y": 58 + { + "matcher": { + "id": "byName", + "options": "service.name" + }, + "properties": [ + { + "id": "custom.hideFrom.viz", + "value": true + } + ] }, - "id": 30, - "options": { - "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false + { + "matcher": { + "id": "byName", + "options": "service.namespace" }, - "frameIndex": 0, - "showHeader": true + "properties": [ + { + "id": "custom.hideFrom.viz", + "value": true + } + ] + } + ] + }, + "gridPos": { + "h": 8, + "w": 15, + "x": 0, + "y": 50 + }, + "id": 30, + "options": { + "cellHeight": "sm", + "frameIndex": 0, + "showHeader": true + }, + "pluginVersion": "12.2.0", + "targets": [ + { + "datasource": { + "type": "jaeger", + "uid": "${jaeger_datasource}" }, - "pluginVersion": "12.1.0", - "targets": [ - { - "datasource": { - "type": "jaeger", - "uid": "${jaeger_datasource}" - }, - "queryType": "search", - "refId": "A", - "service": "$service_name", - "tags": "service.namespace=\"$service_namespace\"" - } - ], - "title": "", - "type": "table" + "queryType": "search", + "refId": "A", + "service": "$service_name", + "tags": "service.namespace=\"$service_namespace\"" } ], - "title": "Traces", - "type": "row" + "title": "", + "type": "table" } ], "preload": false, "refresh": "30s", - "schemaVersion": 41, + "schemaVersion": 42, "tags": [], "templating": { "list": [ @@ -2457,23 +2660,34 @@ data: }, { "current": { - "text": ".*", - "value": ".*" + "text": "demo", + "value": "demo" }, - "description": "Waiting to implement support of the optional value of `deployment.environment.name` in the OpenSearch and Jager panels, hide variable.", - "hide": 2, + "definition": "label_values(target_info,deployment_environment_name)", "label": "Environment", "name": "deployment_environment_name", - "query": ".*", - "skipUrlSync": true, - "type": "constant" + "options": [], + "query": { + "qryType": 1, + "query": "label_values(target_info,deployment_environment_name)", + "refId": "PrometheusVariableQueryEditor-VariableQuery" + }, + "refresh": 1, + "regex": "", + "staticOptions": [ + { + "text": "<>", + "value": "" + } + ], + "type": "query" }, { "allValue": ".*", "allowCustomValue": false, "current": { - "text": "opentelemetry-demo", - "value": "opentelemetry-demo" + "text": "otel-demo", + "value": "otel-demo" }, "datasource": { "type": "prometheus", @@ -2539,7 +2753,7 @@ metadata: name: grafana-dashboard-demo-dashboard namespace: default labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" @@ -3743,7 +3957,7 @@ metadata: name: grafana-dashboard-exemplars-dashboard namespace: default labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" @@ -4219,7 +4433,7 @@ metadata: name: grafana-dashboard-linux-dashboard namespace: default labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" @@ -7065,7 +7279,7 @@ metadata: name: grafana-dashboard-opentelemetry-collector namespace: default labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" @@ -13400,7 +13614,7 @@ metadata: name: grafana-dashboard-postgresql-dashboard namespace: default labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" @@ -14891,7 +15105,7 @@ metadata: name: grafana-dashboard-spanmetrics-dashboard namespace: default labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" @@ -15942,7 +16156,7 @@ metadata: name: grafana-datasources namespace: default labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" @@ -15951,30 +16165,6 @@ metadata: 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 @@ -15986,7 +16176,7 @@ data: - name: Jaeger uid: webstore-traces type: jaeger - url: http://jaeger:16686/jaeger/ui + url: http://jaeger-query:16686/jaeger/ui editable: true isDefault: false jsonData: @@ -16020,3 +16210,27 @@ data: pplEnabled: true timeField: observedTimestamp version: 3.2.0 + prometheus.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 diff --git a/charts/opentelemetry-demo/examples/kubernetes-infra-monitoring/rendered/opentelemetry-collector/clusterrole.yaml b/charts/opentelemetry-demo/examples/kubernetes-infra-monitoring/rendered/opentelemetry-collector/clusterrole.yaml deleted file mode 100644 index 1f6a139415..0000000000 --- a/charts/opentelemetry-demo/examples/kubernetes-infra-monitoring/rendered/opentelemetry-collector/clusterrole.yaml +++ /dev/null @@ -1,27 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/opentelemetry-collector/templates/clusterrole.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: otel-collector - labels: - helm.sh/chart: opentelemetry-collector-0.134.0 - app.kubernetes.io/name: opentelemetry-collector - app.kubernetes.io/instance: example - app.kubernetes.io/version: "0.135.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/part-of: opentelemetry-collector - app.kubernetes.io/component: agent-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"] - - apiGroups: [""] - resources: ["nodes/stats"] - verbs: ["get", "watch", "list"] diff --git a/charts/opentelemetry-demo/examples/kubernetes-infra-monitoring/rendered/opentelemetry-collector/clusterrolebinding.yaml b/charts/opentelemetry-demo/examples/kubernetes-infra-monitoring/rendered/opentelemetry-collector/clusterrolebinding.yaml deleted file mode 100644 index efdd7fe3a9..0000000000 --- a/charts/opentelemetry-demo/examples/kubernetes-infra-monitoring/rendered/opentelemetry-collector/clusterrolebinding.yaml +++ /dev/null @@ -1,22 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/opentelemetry-collector/templates/clusterrolebinding.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: otel-collector - labels: - helm.sh/chart: opentelemetry-collector-0.134.0 - app.kubernetes.io/name: opentelemetry-collector - app.kubernetes.io/instance: example - app.kubernetes.io/version: "0.135.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/part-of: opentelemetry-collector - app.kubernetes.io/component: agent-collector -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: otel-collector -subjects: -- kind: ServiceAccount - name: otel-collector - namespace: default diff --git a/charts/opentelemetry-demo/examples/kubernetes-infra-monitoring/rendered/opentelemetry-collector/configmap-agent.yaml b/charts/opentelemetry-demo/examples/kubernetes-infra-monitoring/rendered/opentelemetry-collector/configmap-agent.yaml deleted file mode 100644 index 88c34251db..0000000000 --- a/charts/opentelemetry-demo/examples/kubernetes-infra-monitoring/rendered/opentelemetry-collector/configmap-agent.yaml +++ /dev/null @@ -1,279 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/opentelemetry-collector/templates/configmap-agent.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: otel-collector-agent - namespace: default - labels: - helm.sh/chart: opentelemetry-collector-0.134.0 - app.kubernetes.io/name: opentelemetry-collector - app.kubernetes.io/instance: example - app.kubernetes.io/version: "0.135.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/part-of: opentelemetry-collector - app.kubernetes.io/component: agent-collector -data: - relay: | - connectors: - spanmetrics: {} - exporters: - debug: {} - opensearch: - http: - endpoint: http://opensearch:9200 - tls: - insecure: true - logs_index: otel-logs - logs_index_time_format: yyyy-MM-dd - otlp: - endpoint: jaeger-collector:4317 - tls: - insecure: true - otlphttp/prometheus: - endpoint: http://prometheus:9090/api/v1/otlp - tls: - insecure: true - extensions: - file_storage: - directory: /var/lib/otelcol - health_check: - endpoint: ${env:MY_POD_IP}:13133 - processors: - batch: {} - k8sattributes: - extract: - metadata: - - k8s.namespace.name - - k8s.deployment.name - - k8s.statefulset.name - - k8s.daemonset.name - - k8s.cronjob.name - - k8s.job.name - - k8s.node.name - - k8s.pod.name - - k8s.pod.uid - - k8s.pod.start_time - filter: - node_from_env_var: K8S_NODE_NAME - passthrough: false - pod_association: - - sources: - - from: resource_attribute - name: k8s.pod.ip - - sources: - - from: resource_attribute - name: k8s.pod.uid - - sources: - - from: connection - memory_limiter: - check_interval: 5s - limit_percentage: 80 - spike_limit_percentage: 25 - resource: - attributes: - - action: insert - from_attribute: k8s.pod.uid - key: service.instance.id - resourcedetection: - detectors: - - env - - system - transform: - error_mode: ignore - trace_statements: - - context: span - statements: - - replace_pattern(name, "\\?.*", "") - - replace_match(name, "GET /api/products/*", "GET /api/products/{productId}") - receivers: - filelog: - exclude: - - /var/log/pods/default_otel-collector*_*/opentelemetry-collector/*.log - include: - - /var/log/pods/*/*/*.log - include_file_name: false - include_file_path: true - operators: - - id: container-parser - max_log_size: 102400 - type: container - retry_on_failure: - enabled: true - start_at: end - storage: file_storage - hostmetrics: - collection_interval: 10s - root_path: /hostfs - scrapers: - cpu: null - disk: null - filesystem: - exclude_fs_types: - fs_types: - - autofs - - binfmt_misc - - bpf - - cgroup2 - - configfs - - debugfs - - devpts - - devtmpfs - - fusectl - - hugetlbfs - - iso9660 - - mqueue - - nsfs - - overlay - - proc - - procfs - - pstore - - rpc_pipefs - - securityfs - - selinuxfs - - squashfs - - sysfs - - tracefs - match_type: strict - exclude_mount_points: - match_type: regexp - mount_points: - - /dev/* - - /proc/* - - /sys/* - - /run/k3s/containerd/* - - /var/lib/docker/* - - /var/lib/kubelet/* - - /snap/* - load: null - memory: null - network: null - httpcheck/frontend-proxy: - targets: - - endpoint: http://frontend-proxy:8080 - jaeger: - protocols: - grpc: - endpoint: ${env:MY_POD_IP}:14250 - thrift_compact: - endpoint: ${env:MY_POD_IP}:6831 - thrift_http: - endpoint: ${env:MY_POD_IP}:14268 - kubeletstats: - auth_type: serviceAccount - collection_interval: 20s - endpoint: ${env:K8S_NODE_IP}:10250 - nginx: - collection_interval: 10s - endpoint: http://image-provider:8081/status - otlp: - protocols: - grpc: - endpoint: ${env:MY_POD_IP}:4317 - http: - cors: - allowed_origins: - - http://* - - https://* - endpoint: ${env:MY_POD_IP}:4318 - postgresql: - endpoint: postgresql:5432 - metrics: - postgresql.blks_hit: - enabled: true - postgresql.blks_read: - enabled: true - postgresql.deadlocks: - enabled: true - postgresql.tup_deleted: - enabled: true - postgresql.tup_fetched: - enabled: true - postgresql.tup_inserted: - enabled: true - postgresql.tup_returned: - enabled: true - postgresql.tup_updated: - enabled: true - password: otel - tls: - insecure: true - username: root - prometheus: - config: - scrape_configs: - - job_name: opentelemetry-collector - scrape_interval: 10s - static_configs: - - targets: - - ${env:MY_POD_IP}:8888 - redis: - collection_interval: 10s - endpoint: valkey-cart:6379 - username: valkey - zipkin: - endpoint: ${env:MY_POD_IP}:9411 - service: - extensions: - - health_check - - file_storage - pipelines: - logs: - exporters: - - opensearch - - debug - processors: - - k8sattributes - - memory_limiter - - resourcedetection - - resource - - batch - receivers: - - otlp - - filelog - metrics: - exporters: - - otlphttp/prometheus - - debug - processors: - - k8sattributes - - memory_limiter - - resourcedetection - - resource - - batch - receivers: - - httpcheck/frontend-proxy - - nginx - - otlp - - postgresql - - redis - - spanmetrics - - hostmetrics - - kubeletstats - traces: - exporters: - - otlp - - debug - - spanmetrics - processors: - - k8sattributes - - memory_limiter - - resourcedetection - - resource - - transform - - batch - receivers: - - otlp - - jaeger - - zipkin - telemetry: - metrics: - level: detailed - readers: - - periodic: - exporter: - otlp: - endpoint: otel-collector:4318 - protocol: http/protobuf - interval: 10000 - timeout: 5000 diff --git a/charts/opentelemetry-demo/examples/kubernetes-infra-monitoring/rendered/opentelemetry-collector/daemonset.yaml b/charts/opentelemetry-demo/examples/kubernetes-infra-monitoring/rendered/opentelemetry-collector/daemonset.yaml deleted file mode 100644 index a0d9f69620..0000000000 --- a/charts/opentelemetry-demo/examples/kubernetes-infra-monitoring/rendered/opentelemetry-collector/daemonset.yaml +++ /dev/null @@ -1,142 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/opentelemetry-collector/templates/daemonset.yaml -apiVersion: apps/v1 -kind: DaemonSet -metadata: - name: otel-collector-agent - namespace: default - labels: - helm.sh/chart: opentelemetry-collector-0.134.0 - app.kubernetes.io/name: opentelemetry-collector - app.kubernetes.io/instance: example - app.kubernetes.io/version: "0.135.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/part-of: opentelemetry-collector - app.kubernetes.io/component: agent-collector -spec: - revisionHistoryLimit: 10 - selector: - matchLabels: - app.kubernetes.io/name: opentelemetry-collector - app.kubernetes.io/instance: example - component: agent-collector - updateStrategy: - type: RollingUpdate - template: - metadata: - annotations: - checksum/config: 243faa155f0417f739c553a9a3a9b6ffe994cb8acfe0ce92061bb4fd11e97f37 - opentelemetry_community_demo: "true" - prometheus.io/scrape: "true" - labels: - app.kubernetes.io/name: opentelemetry-collector - app.kubernetes.io/instance: example - component: agent-collector - - spec: - - serviceAccountName: otel-collector - automountServiceAccountToken: true - securityContext: - {} - containers: - - name: opentelemetry-collector - args: - - --config=/conf/relay.yaml - securityContext: - runAsUser: 0 - runAsGroup: 0 - image: "otel/opentelemetry-collector-contrib:0.135.0" - imagePullPolicy: IfNotPresent - ports: - - - name: jaeger-compact - containerPort: 6831 - protocol: UDP - hostPort: 6831 - - name: jaeger-grpc - containerPort: 14250 - protocol: TCP - hostPort: 14250 - - name: jaeger-thrift - containerPort: 14268 - protocol: TCP - hostPort: 14268 - - name: metrics - containerPort: 8888 - protocol: TCP - - name: otlp - containerPort: 4317 - protocol: TCP - hostPort: 4317 - - name: otlp-http - containerPort: 4318 - protocol: TCP - hostPort: 4318 - - name: zipkin - containerPort: 9411 - protocol: TCP - hostPort: 9411 - env: - - name: MY_POD_IP - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: status.podIP - - name: K8S_NODE_NAME - valueFrom: - fieldRef: - fieldPath: spec.nodeName - - name: K8S_NODE_IP - valueFrom: - fieldRef: - fieldPath: status.hostIP - - 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 - - name: varlogpods - mountPath: /var/log/pods - readOnly: true - - name: varlibdockercontainers - mountPath: /var/lib/docker/containers - readOnly: true - - name: varlibotelcol - mountPath: /var/lib/otelcol - - name: hostfs - mountPath: /hostfs - readOnly: true - mountPropagation: HostToContainer - volumes: - - name: opentelemetry-collector-configmap - configMap: - name: otel-collector-agent - items: - - key: relay - path: relay.yaml - - name: varlogpods - hostPath: - path: /var/log/pods - - name: varlibotelcol - hostPath: - path: /var/lib/otelcol - type: DirectoryOrCreate - - name: varlibdockercontainers - hostPath: - path: /var/lib/docker/containers - - name: hostfs - hostPath: - path: / - hostNetwork: false diff --git a/charts/opentelemetry-demo/examples/kubernetes-infra-monitoring/rendered/opentelemetry-collector/serviceaccount.yaml b/charts/opentelemetry-demo/examples/kubernetes-infra-monitoring/rendered/opentelemetry-collector/serviceaccount.yaml deleted file mode 100644 index a987f56971..0000000000 --- a/charts/opentelemetry-demo/examples/kubernetes-infra-monitoring/rendered/opentelemetry-collector/serviceaccount.yaml +++ /dev/null @@ -1,15 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/opentelemetry-collector/templates/serviceaccount.yaml -apiVersion: v1 -kind: ServiceAccount -metadata: - name: otel-collector - namespace: default - labels: - helm.sh/chart: opentelemetry-collector-0.134.0 - app.kubernetes.io/name: opentelemetry-collector - app.kubernetes.io/instance: example - app.kubernetes.io/version: "0.135.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/part-of: opentelemetry-collector - app.kubernetes.io/component: agent-collector diff --git a/charts/opentelemetry-demo/examples/kubernetes-infra-monitoring/rendered/opentelemetry-kube-stack/clusterrole.yaml b/charts/opentelemetry-demo/examples/kubernetes-infra-monitoring/rendered/opentelemetry-kube-stack/clusterrole.yaml new file mode 100644 index 0000000000..eabfef18d2 --- /dev/null +++ b/charts/opentelemetry-demo/examples/kubernetes-infra-monitoring/rendered/opentelemetry-kube-stack/clusterrole.yaml @@ -0,0 +1,140 @@ +--- +# Source: opentelemetry-demo/charts/opentelemetry-kube-stack/templates/clusterrole.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: example-collector +rules: +- apiGroups: [""] + resources: + - namespaces + - nodes + - nodes/proxy + - nodes/metrics + - nodes/stats + - services + - endpoints + - pods + - events + - secrets + - persistentvolumeclaims + - persistentvolumes + verbs: ["get", "list", "watch"] +- apiGroups: ["monitoring.coreos.com"] + resources: + - servicemonitors + - podmonitors + - scrapeconfigs + - probes + verbs: ["get", "list", "watch"] +- apiGroups: + - extensions + resources: + - ingresses + verbs: ["get", "list", "watch"] +- apiGroups: + - apps + resources: + - daemonsets + - deployments + - replicasets + - statefulsets + verbs: ["get", "list", "watch"] +- apiGroups: + - networking.k8s.io + resources: + - ingresses + verbs: ["get", "list", "watch"] +- apiGroups: ["discovery.k8s.io"] + resources: + - endpointslices + verbs: ["get", "list", "watch"] +- nonResourceURLs: ["/metrics", "/metrics/cadvisor"] + verbs: ["get"] + +- verbs: + - get + - list + - watch + - create + - update + - patch + - delete + apiGroups: + - coordination.k8s.io + resources: + - leases +- apiGroups: + - "" + resources: + - events + - namespaces + - namespaces/status + - nodes + - nodes/spec + - pods + - pods/status + - replicationcontrollers + - replicationcontrollers/status + - resourcequotas + - services + verbs: + - get + - list + - watch +- apiGroups: + - apps + resources: + - daemonsets + - deployments + - replicasets + - statefulsets + verbs: + - get + - list + - watch +- apiGroups: + - extensions + resources: + - daemonsets + - deployments + - replicasets + verbs: + - get + - list + - watch +- apiGroups: + - batch + resources: + - jobs + - cronjobs + verbs: + - get + - list + - watch +- apiGroups: + - autoscaling + resources: + - horizontalpodautoscalers + verbs: + - get + - list + - watch +- apiGroups: ["events.k8s.io"] + resources: ["events"] + verbs: ["watch", "list"] +--- +# Source: opentelemetry-demo/charts/opentelemetry-kube-stack/templates/clusterrole.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: otel-demo-daemon +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: example-collector +subjects: +- kind: ServiceAccount + # quirk of the Operator + name: "otel-demo-daemon-collector" + namespace: default diff --git a/charts/opentelemetry-demo/examples/kubernetes-infra-monitoring/rendered/opentelemetry-kube-stack/collector.yaml b/charts/opentelemetry-demo/examples/kubernetes-infra-monitoring/rendered/opentelemetry-kube-stack/collector.yaml new file mode 100644 index 0000000000..68494c3588 --- /dev/null +++ b/charts/opentelemetry-demo/examples/kubernetes-infra-monitoring/rendered/opentelemetry-kube-stack/collector.yaml @@ -0,0 +1,392 @@ +--- +# Source: opentelemetry-demo/charts/opentelemetry-kube-stack/templates/collector.yaml +apiVersion: opentelemetry.io/v1beta1 +kind: OpenTelemetryCollector +metadata: + name: otel-demo-daemon + namespace: default + labels: + helm.sh/chart: opentelemetry-kube-stack-0.11.1 + app.kubernetes.io/version: "0.129.1" + app.kubernetes.io/managed-by: Helm + release: "example" +spec: + managementState: managed + mode: daemonset + config: + connectors: + spanmetrics: {} + exporters: + debug: {} + opensearch: + http: + endpoint: http://opensearch:9200 + tls: + insecure: true + logs_index: otel-logs + logs_index_time_format: yyyy-MM-dd + otlp/jaeger: + endpoint: http://jaeger-collector:4317 + tls: + insecure: true + otlphttp/prometheus: + endpoint: http://prometheus:9090/api/v1/otlp + tls: + insecure: true + extensions: + file_storage: + directory: /var/lib/otelcol + health_check: + endpoint: 0.0.0.0:13133 + k8s_leader_elector/k8s_cluster: + auth_type: serviceAccount + lease_name: k8s.cluster.receiver.opentelemetry.io + lease_namespace: default + k8s_leader_elector/k8s_objects: + auth_type: serviceAccount + lease_name: k8s.objects.receiver.opentelemetry.io + lease_namespace: default + k8s_observer: + observe_ingresses: true + observe_nodes: true + observe_services: true + processors: + batch: + send_batch_max_size: 1500 + send_batch_size: 1000 + timeout: 1s + k8sattributes: + extract: + labels: + - from: pod + key: app.kubernetes.io/instance + tag_name: k8s.app.instance + - from: pod + key: app.kubernetes.io/component + tag_name: k8s.app.component + metadata: + - k8s.namespace.name + - k8s.pod.name + - k8s.pod.uid + - k8s.node.name + - k8s.pod.start_time + - k8s.deployment.name + - k8s.replicaset.name + - k8s.replicaset.uid + - k8s.daemonset.name + - k8s.daemonset.uid + - k8s.job.name + - k8s.job.uid + - k8s.container.name + - k8s.cronjob.name + - k8s.statefulset.name + - k8s.statefulset.uid + - container.image.tag + - container.image.name + - k8s.cluster.uid + - service.namespace + - service.name + - service.version + - service.instance.id + otel_annotations: true + filter: + node_from_env_var: OTEL_K8S_NODE_NAME + passthrough: false + pod_association: + - sources: + - from: resource_attribute + name: k8s.pod.uid + - sources: + - from: resource_attribute + name: k8s.pod.name + - from: resource_attribute + name: k8s.namespace.name + - from: resource_attribute + name: k8s.node.name + - sources: + - from: resource_attribute + name: k8s.pod.ip + - sources: + - from: resource_attribute + name: k8s.pod.name + - from: resource_attribute + name: k8s.namespace.name + - sources: + - from: connection + resource/hostname: + attributes: + - action: insert + from_attribute: k8s.node.name + key: host.name + resourcedetection/env: + detectors: + - env + - k8snode + override: false + timeout: 2s + transform/fix_nextjs_span_name: + error_mode: ignore + trace_statements: + - context: span + statements: + - replace_pattern(name, "\\?.*", "") + - replace_match(name, "GET /api/products/*", "GET /api/products/{productId}") + receivers: + filelog: + exclude: [] + include: + - /var/log/pods/*/*/*.log + include_file_name: false + include_file_path: true + operators: + - id: container-parser + max_log_size: 102400 + type: container + retry_on_failure: + enabled: true + start_at: end + storage: file_storage + hostmetrics: + collection_interval: 10s + root_path: /hostfs + scrapers: + cpu: + metrics: + system.cpu.utilization: + enabled: true + disk: {} + filesystem: + exclude_fs_types: + fs_types: + - autofs + - binfmt_misc + - bpf + - cgroup2 + - configfs + - debugfs + - devpts + - devtmpfs + - fusectl + - hugetlbfs + - iso9660 + - mqueue + - nsfs + - overlay + - proc + - procfs + - pstore + - rpc_pipefs + - securityfs + - selinuxfs + - squashfs + - sysfs + - tracefs + match_type: strict + exclude_mount_points: + match_type: regexp + mount_points: + - /dev/* + - /proc/* + - /sys/* + - /run/k3s/containerd/* + - /var/lib/docker/* + - /var/lib/kubelet/* + - /snap/* + metrics: + system.filesystem.utilization: + enabled: true + load: {} + memory: + metrics: + system.memory.utilization: + enabled: true + network: {} + k8s_cluster: + allocatable_types_to_report: + - cpu + - memory + - storage + auth_type: serviceAccount + collection_interval: 10s + k8s_leader_elector: k8s_leader_elector/k8s_cluster + node_conditions_to_report: + - Ready + - MemoryPressure + - DiskPressure + - NetworkUnavailable + k8sobjects: + k8s_leader_elector: k8s_leader_elector/k8s_objects + objects: + - exclude_watch_type: + - DELETED + group: events.k8s.io + mode: watch + name: events + kubeletstats: + auth_type: serviceAccount + collection_interval: 15s + endpoint: https://${env:OTEL_K8S_NODE_IP}:10250 + extra_metadata_labels: + - container.id + - k8s.volume.type + insecure_skip_verify: true + k8s_api_config: + auth_type: serviceAccount + metric_groups: + - node + - pod + - volume + - container + metrics: + container.cpu.usage: + enabled: true + k8s.node.cpu.usage: + enabled: true + k8s.node.uptime: + enabled: true + k8s.pod.cpu.usage: + enabled: true + k8s.pod.uptime: + enabled: true + otlp: + protocols: + grpc: + endpoint: 0.0.0.0:4317 + http: + cors: + allowed_origins: + - http://* + - https://* + endpoint: 0.0.0.0:4318 + receiver_creator/k8s: + discovery: + enabled: true + watch_observers: + - k8s_observer + service: + extensions: + - health_check + - k8s_observer + - file_storage + - k8s_leader_elector/k8s_objects + - k8s_leader_elector/k8s_cluster + pipelines: + logs: + exporters: + - opensearch + processors: + - k8sattributes + - resourcedetection/env + - resource/hostname + - batch + receivers: + - otlp + - filelog + - k8sobjects + metrics: + exporters: + - otlphttp/prometheus + processors: + - k8sattributes + - resourcedetection/env + - resource/hostname + - batch + receivers: + - otlp + - receiver_creator/k8s + - spanmetrics + - hostmetrics + - kubeletstats + - k8s_cluster + traces: + exporters: + - otlp/jaeger + - spanmetrics + processors: + - k8sattributes + - resourcedetection/env + - resource/hostname + - transform/fix_nextjs_span_name + - batch + receivers: + - otlp + telemetry: + logs: + level: info + metrics: + readers: + - pull: + exporter: + prometheus: + host: 0.0.0.0 + port: 8888 + image: "otel/opentelemetry-collector-contrib:0.134.1" + imagePullPolicy: IfNotPresent + upgradeStrategy: automatic + terminationGracePeriodSeconds: 30 + resources: + limits: + cpu: 200m + memory: 500Mi + requests: + cpu: 100m + memory: 250Mi + securityContext: + runAsGroup: 0 + runAsUser: 0 + targetAllocator: + enabled: false + volumeMounts: + - name: varlogpods + mountPath: /var/log/pods + readOnly: true + - name: varlibdockercontainers + mountPath: /var/lib/docker/containers + readOnly: true + - name: varlibotelcol + mountPath: /var/lib/otelcol + - name: hostfs + mountPath: /hostfs + readOnly: true + mountPropagation: HostToContainer + env: + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + - name: OTEL_K8S_NODE_IP + valueFrom: + fieldRef: + fieldPath: status.hostIP + - name: OTEL_K8S_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.namespace + - name: OTEL_K8S_POD_NAME + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.name + - name: OTEL_K8S_POD_IP + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: status.podIP + - name: OTEL_RESOURCE_ATTRIBUTES + value: "k8s.cluster.name=otel-demo-stack" + + volumes: + - name: varlogpods + hostPath: + path: /var/log/pods + - name: varlibotelcol + hostPath: + path: /var/lib/otelcol + type: DirectoryOrCreate + - name: varlibdockercontainers + hostPath: + path: /var/lib/docker/containers + - name: hostfs + hostPath: + path: / diff --git a/charts/opentelemetry-demo/examples/kubernetes-infra-monitoring/rendered/opentelemetry-kube-stack/hooks.yaml b/charts/opentelemetry-demo/examples/kubernetes-infra-monitoring/rendered/opentelemetry-kube-stack/hooks.yaml new file mode 100644 index 0000000000..21e0f367a0 --- /dev/null +++ b/charts/opentelemetry-demo/examples/kubernetes-infra-monitoring/rendered/opentelemetry-kube-stack/hooks.yaml @@ -0,0 +1,64 @@ +--- +# Source: opentelemetry-demo/charts/opentelemetry-kube-stack/templates/hooks.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: delete-resources-sa + annotations: + "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded +--- +# Source: opentelemetry-demo/charts/opentelemetry-kube-stack/templates/hooks.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: delete-resources-role + annotations: + "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded +rules: + - apiGroups: + - opentelemetry.io + resources: + - instrumentations + - opampbridges + - opentelemetrycollectors + verbs: + - get + - list + - delete +--- +# Source: opentelemetry-demo/charts/opentelemetry-kube-stack/templates/hooks.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: delete-resources-rolebinding + annotations: + "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: delete-resources-role +subjects: + - kind: ServiceAccount + name: delete-resources-sa +--- +# Source: opentelemetry-demo/charts/opentelemetry-kube-stack/templates/hooks.yaml +apiVersion: batch/v1 +kind: Job +metadata: + name: opentelemetry-kube-stack-pre-delete-job + annotations: + "helm.sh/hook": pre-delete + "helm.sh/hook-delete-policy": hook-succeeded,hook-failed +spec: + template: + spec: + restartPolicy: Never + serviceAccountName: delete-resources-sa + containers: + - name: delete-resources + image: "rancher/kubectl:v1.34.1" + args: + - "delete" + - "instrumentations,opampbridges,opentelemetrycollectors" + - "-l" + - "helm.sh/chart=opentelemetry-kube-stack-0.11.1" diff --git a/charts/opentelemetry-demo/examples/kubernetes-infra-monitoring/rendered/product-catalog-products.yaml b/charts/opentelemetry-demo/examples/kubernetes-infra-monitoring/rendered/product-catalog-products.yaml index 047185144c..5b0c601396 100644 --- a/charts/opentelemetry-demo/examples/kubernetes-infra-monitoring/rendered/product-catalog-products.yaml +++ b/charts/opentelemetry-demo/examples/kubernetes-infra-monitoring/rendered/product-catalog-products.yaml @@ -6,7 +6,7 @@ metadata: name: product-catalog-products namespace: default labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" diff --git a/charts/opentelemetry-demo/examples/kubernetes-infra-monitoring/rendered/prometheus/cm.yaml b/charts/opentelemetry-demo/examples/kubernetes-infra-monitoring/rendered/prometheus/cm.yaml index a5e59fac28..6218e3c0a7 100644 --- a/charts/opentelemetry-demo/examples/kubernetes-infra-monitoring/rendered/prometheus/cm.yaml +++ b/charts/opentelemetry-demo/examples/kubernetes-infra-monitoring/rendered/prometheus/cm.yaml @@ -53,6 +53,7 @@ data: - postgresql.schema.name - postgresql.table.name - postgresql.index.name + - database rule_files: - /etc/config/recording_rules.yml - /etc/config/alerting_rules.yml diff --git a/charts/opentelemetry-demo/examples/kubernetes-infra-monitoring/rendered/serviceaccount.yaml b/charts/opentelemetry-demo/examples/kubernetes-infra-monitoring/rendered/serviceaccount.yaml index 64279d14a2..b72148e91d 100644 --- a/charts/opentelemetry-demo/examples/kubernetes-infra-monitoring/rendered/serviceaccount.yaml +++ b/charts/opentelemetry-demo/examples/kubernetes-infra-monitoring/rendered/serviceaccount.yaml @@ -5,7 +5,7 @@ kind: ServiceAccount metadata: name: example labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" diff --git a/charts/opentelemetry-demo/examples/kubernetes-infra-monitoring/values.yaml b/charts/opentelemetry-demo/examples/kubernetes-infra-monitoring/values.yaml index ba5f66bd60..528a42de8e 100644 --- a/charts/opentelemetry-demo/examples/kubernetes-infra-monitoring/values.yaml +++ b/charts/opentelemetry-demo/examples/kubernetes-infra-monitoring/values.yaml @@ -1,13 +1,17 @@ -opentelemetry-collector: - mode: "daemonset" - presets: - kubernetesAttributes: - enabled: true - kubeletMetrics: - enabled: true - hostMetrics: - enabled: true - logsCollection: - enabled: true - includeCollectorLogs: false - storeCheckpoints: true +opentelemetry-kube-stack: + collectors: + daemon: + presets: + logsCollection: + enabled: true # TODO disable when running on Docker Desktop + storeCheckpoints: true # TODO disable when running on Docker Desktop + hostMetrics: + enabled: true # TODO disable when running on Docker Desktop + kubeletMetrics: + enabled: true + kubernetesAttributes: + enabled: true + kubernetesEvents: + enabled: true + clusterMetrics: + enabled: true diff --git a/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/component.yaml b/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/component.yaml index ee6c2fd9c7..aeadd74831 100644 --- a/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/component.yaml +++ b/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/component.yaml @@ -5,7 +5,7 @@ kind: Service metadata: name: ad labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: ad @@ -30,7 +30,7 @@ kind: Service metadata: name: cart labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: cart @@ -55,7 +55,7 @@ kind: Service metadata: name: checkout labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: checkout @@ -80,7 +80,7 @@ kind: Service metadata: name: currency labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: currency @@ -105,7 +105,7 @@ kind: Service metadata: name: email labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: email @@ -130,7 +130,7 @@ kind: Service metadata: name: flagd labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: flagd @@ -161,7 +161,7 @@ kind: Service metadata: name: frontend labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: frontend @@ -186,7 +186,7 @@ kind: Service metadata: name: frontend-proxy labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: frontend-proxy @@ -211,7 +211,7 @@ kind: Service metadata: name: image-provider labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: image-provider @@ -236,7 +236,7 @@ kind: Service metadata: name: kafka labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: kafka @@ -264,7 +264,7 @@ kind: Service metadata: name: load-generator labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: load-generator @@ -289,7 +289,7 @@ kind: Service metadata: name: payment labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: payment @@ -314,7 +314,7 @@ kind: Service metadata: name: postgresql labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: postgresql @@ -339,7 +339,7 @@ kind: Service metadata: name: product-catalog labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: product-catalog @@ -364,7 +364,7 @@ kind: Service metadata: name: quote labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: quote @@ -389,7 +389,7 @@ kind: Service metadata: name: recommendation labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: recommendation @@ -414,7 +414,7 @@ kind: Service metadata: name: shipping labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: shipping @@ -439,7 +439,7 @@ kind: Service metadata: name: valkey-cart labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: valkey-cart @@ -464,7 +464,7 @@ kind: Deployment metadata: name: accounting labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: accounting @@ -488,6 +488,9 @@ spec: app.kubernetes.io/component: accounting app.kubernetes.io/name: accounting + annotations: + resource.opentelemetry.io/service.name: accounting + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -499,21 +502,40 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - 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_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4318 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: http/protobuf - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.1.3 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 120Mi @@ -533,7 +555,7 @@ kind: Deployment metadata: name: ad labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: ad @@ -557,6 +579,9 @@ spec: app.kubernetes.io/component: ad app.kubernetes.io/name: ad + annotations: + resource.opentelemetry.io/service.name: ad + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -572,23 +597,42 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - 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_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4318 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: http/protobuf - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.1.3 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 300Mi @@ -601,7 +645,7 @@ kind: Deployment metadata: name: cart labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: cart @@ -625,6 +669,9 @@ spec: app.kubernetes.io/component: cart app.kubernetes.io/name: cart + annotations: + resource.opentelemetry.io/service.name: cart + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -640,11 +687,28 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: CART_PORT value: "8080" - name: ASPNETCORE_URLS @@ -655,10 +719,8 @@ spec: 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 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 160Mi @@ -679,7 +741,7 @@ kind: Deployment metadata: name: checkout labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: checkout @@ -703,6 +765,9 @@ spec: app.kubernetes.io/component: checkout app.kubernetes.io/name: checkout + annotations: + resource.opentelemetry.io/service.name: checkout + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -718,11 +783,28 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: CHECKOUT_PORT value: "8080" - name: CART_ADDR @@ -743,12 +825,10 @@ spec: 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 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 20Mi @@ -768,7 +848,7 @@ kind: Deployment metadata: name: currency labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: currency @@ -792,6 +872,9 @@ spec: app.kubernetes.io/component: currency app.kubernetes.io/name: currency + annotations: + resource.opentelemetry.io/service.name: currency + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -807,19 +890,34 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - 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 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 20Mi @@ -832,7 +930,7 @@ kind: Deployment metadata: name: email labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: email @@ -856,6 +954,9 @@ spec: app.kubernetes.io/component: email app.kubernetes.io/name: email + annotations: + resource.opentelemetry.io/service.name: email + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -871,23 +972,44 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: EMAIL_PORT value: "8080" - name: APP_ENV value: production - - name: OTEL_EXPORTER_OTLP_ENDPOINT - value: http://$(OTEL_COLLECTOR_NAME):4318 + - name: OTEL_EXPORTER_OTLP_TRACES_ENDPOINT + value: http://otel-demo-daemon-collector:4318/v1/traces - name: FLAGD_HOST value: flagd - name: FLAGD_PORT value: "8013" + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4318 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: http/protobuf - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.1.3 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 100Mi @@ -900,7 +1022,7 @@ kind: Deployment metadata: name: flagd labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: flagd @@ -924,6 +1046,9 @@ spec: app.kubernetes.io/component: flagd app.kubernetes.io/name: flagd + annotations: + resource.opentelemetry.io/service.name: flagd + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -950,19 +1075,36 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: FLAGD_METRICS_EXPORTER value: otel - name: FLAGD_OTEL_COLLECTOR_URI - value: $(OTEL_COLLECTOR_NAME):4317 + value: otel-demo-daemon-collector:4317 - name: GOMEMLIMIT value: 60MiB - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.1.3 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 75Mi @@ -981,23 +1123,42 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - 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_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4318 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: http/protobuf - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.1.3 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 250Mi @@ -1029,7 +1190,7 @@ kind: Deployment metadata: name: fraud-detection labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: fraud-detection @@ -1053,6 +1214,9 @@ spec: app.kubernetes.io/component: fraud-detection app.kubernetes.io/name: fraud-detection + annotations: + resource.opentelemetry.io/service.name: fraud-detection + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -1064,25 +1228,44 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - 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_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4318 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: http/protobuf - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.1.3 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 300Mi @@ -1102,7 +1285,7 @@ kind: Deployment metadata: name: frontend labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: frontend @@ -1126,6 +1309,9 @@ spec: app.kubernetes.io/component: frontend app.kubernetes.io/name: frontend + annotations: + resource.opentelemetry.io/service.name: frontend + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -1141,11 +1327,28 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: FRONTEND_PORT value: "8080" - name: PORT @@ -1172,16 +1375,12 @@ spec: 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: https://otel-demo-collector.example.com/v1/traces + value: https://otel-demo.example.com/otlp-http/v1/traces - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.1.3 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 250Mi @@ -1198,7 +1397,7 @@ kind: Deployment metadata: name: frontend-proxy labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: frontend-proxy @@ -1222,6 +1421,14 @@ spec: app.kubernetes.io/component: frontend-proxy app.kubernetes.io/name: frontend-proxy + annotations: + io.opentelemetry.discovery.metrics/config: | + targets: + - endpoint: "http://`endpoint`" # FIXME why isn't `endpoint` interpolated? + io.opentelemetry.discovery.metrics/enabled: "true" + io.opentelemetry.discovery.metrics/scraper: httpcheck + resource.opentelemetry.io/service.name: frontend-proxy + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -1237,11 +1444,28 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: ENVOY_PORT value: "8080" - name: ENVOY_ADMIN_PORT @@ -1274,14 +1498,12 @@ spec: 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 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 65Mi @@ -1298,7 +1520,7 @@ kind: Deployment metadata: name: image-provider labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: image-provider @@ -1322,6 +1544,15 @@ spec: app.kubernetes.io/component: image-provider app.kubernetes.io/name: image-provider + annotations: + io.opentelemetry.discovery.metrics/config: | + endpoint: "http://`endpoint`/status" + collection_interval: "10s" + timeout: "20s" + io.opentelemetry.discovery.metrics/enabled: "true" + io.opentelemetry.discovery.metrics/scraper: nginx + resource.opentelemetry.io/service.name: image-provider + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -1337,19 +1568,34 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - 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 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 50Mi @@ -1362,7 +1608,7 @@ kind: Deployment metadata: name: kafka labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: kafka @@ -1386,6 +1632,9 @@ spec: app.kubernetes.io/component: kafka app.kubernetes.io/name: kafka + annotations: + resource.opentelemetry.io/service.name: kafka + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -1403,15 +1652,30 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - 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 @@ -1420,8 +1684,12 @@ spec: value: CONTROLLER - name: KAFKA_CONTROLLER_QUORUM_VOTERS value: 1@kafka:9093 + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4318 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: http/protobuf - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.1.3 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 600Mi @@ -1438,7 +1706,7 @@ kind: Deployment metadata: name: load-generator labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: load-generator @@ -1462,6 +1730,9 @@ spec: app.kubernetes.io/component: load-generator app.kubernetes.io/name: load-generator + annotations: + resource.opentelemetry.io/service.name: load-generator + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -1477,11 +1748,28 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: LOCUST_WEB_HOST value: 0.0.0.0 - name: LOCUST_WEB_PORT @@ -1506,10 +1794,8 @@ spec: 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 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 1500Mi @@ -1522,7 +1808,7 @@ kind: Deployment metadata: name: payment labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: payment @@ -1546,6 +1832,9 @@ spec: app.kubernetes.io/component: payment app.kubernetes.io/name: payment + annotations: + resource.opentelemetry.io/service.name: payment + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -1561,21 +1850,36 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - 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 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 120Mi @@ -1592,7 +1896,7 @@ kind: Deployment metadata: name: postgresql labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: postgresql @@ -1616,6 +1920,31 @@ spec: app.kubernetes.io/component: postgresql app.kubernetes.io/name: postgresql + annotations: + io.opentelemetry.discovery.metrics/config: | + username: root + password: otel + metrics: + postgresql.blks_hit: + enabled: true + postgresql.blks_read: + enabled: true + postgresql.tup_fetched: + enabled: true + postgresql.tup_returned: + enabled: true + postgresql.tup_inserted: + enabled: true + postgresql.tup_updated: + enabled: true + postgresql.tup_deleted: + enabled: true + postgresql.deadlocks: + enabled: true + tls: + insecure: true + io.opentelemetry.discovery.metrics/enabled: "true" + io.opentelemetry.discovery.metrics/scraper: postgresql spec: serviceAccountName: example containers: @@ -1631,11 +1960,28 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: POSTGRES_USER value: root - name: POSTGRES_PASSWORD @@ -1643,7 +1989,7 @@ spec: - name: POSTGRES_DB value: otel - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.1.3 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 100Mi @@ -1656,7 +2002,7 @@ kind: Deployment metadata: name: product-catalog labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: product-catalog @@ -1680,6 +2026,9 @@ spec: app.kubernetes.io/component: product-catalog app.kubernetes.io/name: product-catalog + annotations: + resource.opentelemetry.io/service.name: product-catalog + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -1695,11 +2044,28 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: PRODUCT_CATALOG_PORT value: "8080" - name: PRODUCT_CATALOG_RELOAD_INTERVAL @@ -1708,12 +2074,10 @@ spec: 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 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 20Mi @@ -1731,7 +2095,7 @@ kind: Deployment metadata: name: quote labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: quote @@ -1755,6 +2119,9 @@ spec: app.kubernetes.io/component: quote app.kubernetes.io/name: quote + annotations: + resource.opentelemetry.io/service.name: quote + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -1770,11 +2137,28 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: QUOTE_PORT value: "8080" - name: OTEL_PHP_AUTOLOAD_ENABLED @@ -1782,9 +2166,11 @@ spec: - name: OTEL_PHP_INTERNAL_METRICS_ENABLED value: "true" - name: OTEL_EXPORTER_OTLP_ENDPOINT - value: http://$(OTEL_COLLECTOR_NAME):4318 + value: http://otel-demo-daemon-collector:4318 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: http/protobuf - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.1.3 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 40Mi @@ -1801,7 +2187,7 @@ kind: Deployment metadata: name: recommendation labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: recommendation @@ -1825,6 +2211,9 @@ spec: app.kubernetes.io/component: recommendation app.kubernetes.io/name: recommendation + annotations: + resource.opentelemetry.io/service.name: recommendation + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -1840,11 +2229,28 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: RECOMMENDATION_PORT value: "8080" - name: PRODUCT_CATALOG_ADDR @@ -1857,10 +2263,8 @@ spec: 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 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 500Mi @@ -1873,7 +2277,7 @@ kind: Deployment metadata: name: shipping labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: shipping @@ -1897,6 +2301,9 @@ spec: app.kubernetes.io/component: shipping app.kubernetes.io/name: shipping + annotations: + resource.opentelemetry.io/service.name: shipping + resource.opentelemetry.io/service.namespace: opentelemetry-demo spec: serviceAccountName: example containers: @@ -1912,19 +2319,34 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - 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 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 20Mi @@ -1937,7 +2359,7 @@ kind: Deployment metadata: name: valkey-cart labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: valkey-cart @@ -1961,6 +2383,12 @@ spec: app.kubernetes.io/component: valkey-cart app.kubernetes.io/name: valkey-cart + annotations: + io.opentelemetry.discovery.metrics/config: | + username: valkey + collection_interval: 10s + io.opentelemetry.discovery.metrics/enabled: "true" + io.opentelemetry.discovery.metrics/scraper: redis spec: serviceAccountName: example containers: @@ -1976,13 +2404,30 @@ spec: valueFrom: fieldRef: apiVersion: v1 - fieldPath: metadata.labels['app.kubernetes.io/component'] - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: metadata.annotations['resource.opentelemetry.io/service.name'] + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.annotations['resource.opentelemetry.io/service.namespace'] + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4317 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector + - name: OTEL_PROPAGATORS + value: tracecontext,baggage + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on - name: OTEL_RESOURCE_ATTRIBUTES - value: service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version=2.1.3 + value: service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version=2.1.3,deployment.environment.name=demo resources: limits: memory: 20Mi @@ -1999,7 +2444,7 @@ kind: Ingress metadata: name: frontend-proxy labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 opentelemetry.io/name: frontend-proxy diff --git a/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/flagd-config.yaml b/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/flagd-config.yaml index 1a64e1f8c3..04c58a9e4d 100644 --- a/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/flagd-config.yaml +++ b/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/flagd-config.yaml @@ -6,7 +6,7 @@ metadata: name: flagd-config namespace: default labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" diff --git a/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/grafana-config.yaml b/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/grafana-config.yaml index 54875bb9fb..ea732aba6b 100644 --- a/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/grafana-config.yaml +++ b/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/grafana-config.yaml @@ -6,7 +6,7 @@ metadata: name: grafana-alerting namespace: default labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" @@ -15,7 +15,101 @@ metadata: grafana_alert: "1" data: - {} + cart-service-alerting.yaml: | + # Copyright The OpenTelemetry Authors + # SPDX-License-Identifier: Apache-2.0 + + --- + apiVersion: 1 + groups: + - orgId: 1 + name: otel-demo + folder: cart + interval: 1m + rules: + - uid: des78nlna99tsf + title: CartAddItemHighLatency + condition: p95_threshold + data: + - refId: p95_duration + relativeTimeRange: + from: 600 + to: 0 + datasourceUid: webstore-metrics + model: + editorMode: code + expr: |- + histogram_quantile( + 0.95, + sum by (deployment_environment_name, service_namespace, service_name, service_instance_id, http_route, http_request_method, le) ( + rate( + http_server_request_duration_seconds_bucket{ + deployment_environment_name="demo", + service_namespace="otel-demo", + service_name="cart", + http_request_method="POST", + http_route="/oteldemo.CartService/AddItem" + }[5m] + ) + ) + ) + instant: true + interval: "" + intervalMs: 1000 + legendFormat: __auto + maxDataPoints: 43200 + range: false + refId: p95_duration + - refId: p95_threshold + datasourceUid: __expr__ + model: + conditions: + - evaluator: + params: + - 0.0001 + type: gt + operator: + type: and + query: + params: + - C + reducer: + params: [] + type: last + type: query + datasource: + type: __expr__ + uid: __expr__ + expression: p95_duration + intervalMs: 1000 + maxDataPoints: 43200 + refId: p95_threshold + type: threshold + dashboardUid: febljk0a32qyoa + panelId: 17 + noDataState: NoData + execErrState: Error + for: 1m + keepFiringFor: 2m + annotations: + description: |- + The 95th percentile response time for operation {{ $labels.service_namespace + }}/{{ $labels.service_name }} "{{ $labels.http_request_method }} {{ + $labels.http_route }}" has been + above xxx seconds for 2 minutes on {{ $labels.service_instance_id}}. Current + value: {{ .Value | humanizeDuration }}. + summary: |- + High P95 for {{ $labels.service_namespace }}/{{ $labels.service_name }} "{{ + $labels.http_request_method }} {{ $labels.http_route }}" + labels: + service_name: cart + service_namespace: otel-demo + deployment_environment_name: demo + severity: warning + team_name: webstore + isPaused: false + notification_settings: + receiver: grafana-default-email --- # Source: opentelemetry-demo/templates/grafana-config.yaml apiVersion: v1 @@ -24,7 +118,7 @@ metadata: name: grafana-dashboard-nginx-metrics namespace: default labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" @@ -382,7 +476,7 @@ metadata: name: grafana-dashboard-apm-dashboard namespace: default labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" @@ -418,7 +512,7 @@ data: "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 1, - "id": 5, + "id": 1, "links": [], "panels": [ { @@ -443,7 +537,7 @@ data: "content": "

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

\n", "mode": "html" }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "title": "", "type": "text" }, @@ -501,7 +595,7 @@ data: "textMode": "auto", "wideLayout": true }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "datasource": { @@ -570,6 +664,7 @@ data: "type": "log" }, "showPoints": "auto", + "showValues": false, "spanNulls": false, "stacking": { "group": "A", @@ -619,7 +714,7 @@ data: "sort": "none" } }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "datasource": { @@ -723,6 +818,7 @@ data: "type": "linear" }, "showPoints": "auto", + "showValues": false, "spanNulls": false, "stacking": { "group": "A", @@ -771,7 +867,7 @@ data: "sort": "none" } }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "datasource": { @@ -846,6 +942,7 @@ data: "type": "log" }, "showPoints": "auto", + "showValues": false, "spanNulls": false, "stacking": { "group": "A", @@ -895,7 +992,7 @@ data: "sort": "none" } }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "datasource": { @@ -961,7 +1058,7 @@ data: }, "viewMode": "list" }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "title": "Alerts", "type": "alertlist" }, @@ -981,6 +1078,9 @@ data: "cellOptions": { "type": "auto" }, + "footer": { + "reducers": [] + }, "inspect": false }, "mappings": [], @@ -1051,14 +1151,6 @@ data: "id": 21, "options": { "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, "showHeader": true, "sortBy": [ { @@ -1067,7 +1159,7 @@ data: } ] }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "datasource": { @@ -1175,6 +1267,9 @@ data: "cellOptions": { "type": "auto" }, + "footer": { + "reducers": [] + }, "inspect": false }, "mappings": [], @@ -1241,14 +1336,6 @@ data: "id": 27, "options": { "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, "showHeader": true, "sortBy": [ { @@ -1257,7 +1344,7 @@ data: } ] }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "datasource": { @@ -1379,6 +1466,9 @@ data: "cellOptions": { "type": "auto" }, + "footer": { + "reducers": [] + }, "inspect": false }, "mappings": [], @@ -1445,17 +1535,9 @@ data: "id": 23, "options": { "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, "showHeader": true }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "datasource": { @@ -1565,6 +1647,9 @@ data: "cellOptions": { "type": "auto" }, + "footer": { + "reducers": [] + }, "inspect": false }, "mappings": [], @@ -1631,18 +1716,10 @@ data: "id": 24, "options": { "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, "showHeader": true, "sortBy": [] }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "datasource": { @@ -1758,6 +1835,9 @@ data: "cellOptions": { "type": "auto" }, + "footer": { + "reducers": [] + }, "inspect": false }, "mappings": [], @@ -1824,17 +1904,9 @@ data: "id": 32, "options": { "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, "showHeader": true }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "datasource": { @@ -1939,7 +2011,7 @@ data: }, "id": 42, "panels": [], - "title": "Service instances", + "title": "Infrastructure", "type": "row" }, { @@ -1957,6 +2029,9 @@ data: "cellOptions": { "type": "auto" }, + "footer": { + "reducers": [] + }, "inspect": false }, "mappings": [], @@ -1990,7 +2065,7 @@ data: { "matcher": { "id": "byName", - "options": "Host Memory" + "options": "Host Used Memory" }, "properties": [ { @@ -2002,7 +2077,7 @@ data: ] }, "gridPos": { - "h": 4, + "h": 3, "w": 24, "x": 0, "y": 27 @@ -2010,26 +2085,18 @@ data: "id": 41, "options": { "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, "frameIndex": 1, "showHeader": true }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "editorMode": "code", - "expr": "sum by (service_instance_id_host_name) (\n label_join(\n (\n sum by (service_instance_id, host_name) (\n rate(system_cpu_time_seconds_total{job=\"\", state!=\"idle\"}[$__rate_interval])\n )\n * on(host_name) group_left(service_instance_id)\n target_info{service_name=\"${service_name}\"}\n ),\n \"service_instance_id_host_name\",\n \" / \",\n \"service_instance_id\",\n \"host_name\"\n )\n)", + "expr": "sum by (host_name) (\n rate(system_cpu_time_seconds_total{service_name=\"\", state!=\"idle\"}[$__rate_interval])\n)\n* on(host_name) \ngroup by (host_name) (\n target_info{service_name=\"${service_name}\", service_instance_id!=\"\"}\n)", "hide": false, "legendFormat": "__auto", "range": true, - "refId": "cpu_time_percentage" + "refId": "cpu_time_pct" }, { "datasource": { @@ -2037,7 +2104,7 @@ data: "uid": "webstore-metrics" }, "editorMode": "code", - "expr": "sum by (service_instance_id_host_name) (\n label_join(\n (\n (\n sum by (service_instance_id, host_name) (\n system_memory_usage_bytes{job=\"\", state!=\"free\"}\n )\n /\n sum by (service_instance_id, host_name) (\n system_memory_usage_bytes{job=\"\"}\n )\n )\n * on(host_name) group_left(service_instance_id) (\n target_info{service_name=\"${service_name}\"}\n )\n ),\n \"service_instance_id_host_name\",\n \" / \",\n \"service_instance_id\",\n \"host_name\"\n )\n)", + "expr": " (\n (\n sum by (host_name) (\n system_memory_usage_bytes{service_name=\"\", state=\"used\"}\n )\n /\n sum by (host_name) (\n system_memory_usage_bytes{service_name=\"\"}\n )\n )\n * on(host_name) (\n group by (host_name) (\n target_info{service_name=\"${service_name}\"}\n )\n )\n )\n", "hide": false, "instant": false, "legendFormat": "__auto", @@ -2045,7 +2112,7 @@ data: "refId": "memory_usage_pct" } ], - "title": "Service instance / host", + "title": "", "transformations": [ { "id": "timeSeriesTable", @@ -2053,6 +2120,9 @@ data: "A": { "timeField": "Time" }, + "cpu_time_pct": { + "timeField": "Time" + }, "cpu_time_percentage": { "timeField": "Time" }, @@ -2064,7 +2134,7 @@ data: { "id": "joinByField", "options": { - "byField": "service_instance_id_host_name", + "byField": "host_name", "mode": "outer" } }, @@ -2075,8 +2145,152 @@ data: "includeByName": {}, "indexByName": {}, "renameByName": { + "Trend #cpu_time_pct": "Host CPU", + "Trend #cpu_time_percentage": "Host CPU", + "Trend #memory_usage_pct": "Host Used Memory", + "host_name": "Host", + "service_instance_id_host_name": "Instance / Host" + } + } + } + ], + "type": "table" + }, + { + "datasource": { + "type": "prometheus", + "uid": "webstore-metrics" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "footer": { + "reducers": [] + }, + "inspect": false + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Pod CPU usage" + }, + "properties": [ + { + "id": "unit", + "value": "percentunit" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Pod Memory Usage" + }, + "properties": [ + { + "id": "unit", + "value": "decbytes" + } + ] + } + ] + }, + "gridPos": { + "h": 3, + "w": 24, + "x": 0, + "y": 30 + }, + "id": 43, + "options": { + "cellHeight": "sm", + "frameIndex": 1, + "showHeader": true + }, + "pluginVersion": "12.2.0", + "targets": [ + { + "editorMode": "code", + "expr": "sum by (k8s_pod_name) (\n rate(k8s_pod_cpu_time_seconds_total{}[$__rate_interval])\n)\n* on(k8s_pod_name) \ngroup by (k8s_pod_name) (\n target_info{service_name=\"${service_name}\", service_instance_id!=\"\"}\n)\n", + "hide": false, + "legendFormat": "__auto", + "range": true, + "refId": "cpu_time_pct" + }, + { + "datasource": { + "type": "prometheus", + "uid": "webstore-metrics" + }, + "editorMode": "code", + "expr": "\nsum by (k8s_pod_name) (\n k8s_pod_memory_working_set_bytes{}\n)\n* on(k8s_pod_name)\ngroup by (k8s_pod_name) (\n target_info{service_name=\"${service_name}\", service_instance_id!=\"\"}\n)\n", + "hide": false, + "instant": false, + "legendFormat": "__auto", + "range": true, + "refId": "memory_usage_bytes" + } + ], + "title": "", + "transformations": [ + { + "id": "timeSeriesTable", + "options": { + "A": { + "timeField": "Time" + }, + "cpu_time_percentage": { + "timeField": "Time" + }, + "memory_usage_pct": { + "timeField": "Time" + } + } + }, + { + "id": "joinByField", + "options": { + "byField": "k8s_pod_name", + "mode": "outer" + } + }, + { + "id": "organize", + "options": { + "excludeByName": { + "service_instance_id": true + }, + "includeByName": {}, + "indexByName": {}, + "renameByName": { + "Trend #cpu_time_pct": "Pod CPU usage", "Trend #cpu_time_percentage": "Host CPU", + "Trend #memory_usage_bytes": "Pod Memory Usage", "Trend #memory_usage_pct": "Host Memory", + "k8s_pod_name": "Kubernetes Pod Name", "service_instance_id_host_name": "Instance / Host" } } @@ -2090,7 +2304,7 @@ data: "h": 1, "w": 24, "x": 0, - "y": 31 + "y": 33 }, "id": 25, "panels": [], @@ -2113,6 +2327,9 @@ data: "cellOptions": { "type": "auto" }, + "footer": { + "reducers": [] + }, "inspect": false }, "mappings": [], @@ -2174,23 +2391,15 @@ data: "h": 15, "w": 24, "x": 0, - "y": 32 + "y": 34 }, "id": 26, "options": { "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, "showHeader": true, "sortBy": [] }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "alias": "", @@ -2257,156 +2466,150 @@ data: "type": "table" }, { - "collapsed": true, + "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, - "y": 47 + "y": 49 }, "id": 29, - "panels": [ - { - "datasource": { - "type": "jaeger", - "uid": "${jaeger_datasource}" + "panels": [], + "title": "Traces", + "type": "row" + }, + { + "datasource": { + "type": "jaeger", + "uid": "${jaeger_datasource}" + }, + "description": "Traces containing a span emitted by the service", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" }, - "description": "Traces containing a span emitted by the service", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "cellOptions": { - "type": "auto" - }, - "inspect": false - }, - "mappings": [], - "noValue": "No traces", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": 0 - }, - { - "color": "red", - "value": 80 - } - ] - } + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" }, - "overrides": [ + "footer": { + "reducers": [] + }, + "inspect": false + }, + "mappings": [], + "noValue": "No traces", + "thresholds": { + "mode": "absolute", + "steps": [ { - "matcher": { - "id": "byName", - "options": "Trace Service" - }, - "properties": [ - { - "id": "custom.hidden", - "value": true - } - ] + "color": "green", + "value": 0 }, { - "matcher": { - "id": "byName", - "options": "Span ID" - }, - "properties": [ - { - "id": "custom.hidden", - "value": false - } - ] - }, + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Trace Service" + }, + "properties": [ { - "matcher": { - "id": "byName", - "options": "deployment.environment.name" - }, - "properties": [ - { - "id": "custom.hidden", - "value": true - } - ] - }, + "id": "custom.hideFrom.viz", + "value": true + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Span ID" + }, + "properties": [ { - "matcher": { - "id": "byName", - "options": "service.name" - }, - "properties": [ - { - "id": "custom.hidden", - "value": true - } - ] - }, + "id": "custom.hideFrom.viz", + "value": false + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "deployment.environment.name" + }, + "properties": [ { - "matcher": { - "id": "byName", - "options": "service.namespace" - }, - "properties": [ - { - "id": "custom.hidden", - "value": true - } - ] + "id": "custom.hideFrom.viz", + "value": true } ] }, - "gridPos": { - "h": 8, - "w": 15, - "x": 0, - "y": 58 + { + "matcher": { + "id": "byName", + "options": "service.name" + }, + "properties": [ + { + "id": "custom.hideFrom.viz", + "value": true + } + ] }, - "id": 30, - "options": { - "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false + { + "matcher": { + "id": "byName", + "options": "service.namespace" }, - "frameIndex": 0, - "showHeader": true + "properties": [ + { + "id": "custom.hideFrom.viz", + "value": true + } + ] + } + ] + }, + "gridPos": { + "h": 8, + "w": 15, + "x": 0, + "y": 50 + }, + "id": 30, + "options": { + "cellHeight": "sm", + "frameIndex": 0, + "showHeader": true + }, + "pluginVersion": "12.2.0", + "targets": [ + { + "datasource": { + "type": "jaeger", + "uid": "${jaeger_datasource}" }, - "pluginVersion": "12.1.0", - "targets": [ - { - "datasource": { - "type": "jaeger", - "uid": "${jaeger_datasource}" - }, - "queryType": "search", - "refId": "A", - "service": "$service_name", - "tags": "service.namespace=\"$service_namespace\"" - } - ], - "title": "", - "type": "table" + "queryType": "search", + "refId": "A", + "service": "$service_name", + "tags": "service.namespace=\"$service_namespace\"" } ], - "title": "Traces", - "type": "row" + "title": "", + "type": "table" } ], "preload": false, "refresh": "30s", - "schemaVersion": 41, + "schemaVersion": 42, "tags": [], "templating": { "list": [ @@ -2457,23 +2660,34 @@ data: }, { "current": { - "text": ".*", - "value": ".*" + "text": "demo", + "value": "demo" }, - "description": "Waiting to implement support of the optional value of `deployment.environment.name` in the OpenSearch and Jager panels, hide variable.", - "hide": 2, + "definition": "label_values(target_info,deployment_environment_name)", "label": "Environment", "name": "deployment_environment_name", - "query": ".*", - "skipUrlSync": true, - "type": "constant" + "options": [], + "query": { + "qryType": 1, + "query": "label_values(target_info,deployment_environment_name)", + "refId": "PrometheusVariableQueryEditor-VariableQuery" + }, + "refresh": 1, + "regex": "", + "staticOptions": [ + { + "text": "<>", + "value": "" + } + ], + "type": "query" }, { "allValue": ".*", "allowCustomValue": false, "current": { - "text": "opentelemetry-demo", - "value": "opentelemetry-demo" + "text": "otel-demo", + "value": "otel-demo" }, "datasource": { "type": "prometheus", @@ -2539,7 +2753,7 @@ metadata: name: grafana-dashboard-demo-dashboard namespace: default labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" @@ -3743,7 +3957,7 @@ metadata: name: grafana-dashboard-exemplars-dashboard namespace: default labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" @@ -4219,7 +4433,7 @@ metadata: name: grafana-dashboard-linux-dashboard namespace: default labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" @@ -7065,7 +7279,7 @@ metadata: name: grafana-dashboard-opentelemetry-collector namespace: default labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" @@ -13400,7 +13614,7 @@ metadata: name: grafana-dashboard-postgresql-dashboard namespace: default labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" @@ -14891,7 +15105,7 @@ metadata: name: grafana-dashboard-spanmetrics-dashboard namespace: default labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" @@ -15942,7 +16156,7 @@ metadata: name: grafana-datasources namespace: default labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" @@ -15951,30 +16165,6 @@ metadata: 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 @@ -15986,7 +16176,7 @@ data: - name: Jaeger uid: webstore-traces type: jaeger - url: http://jaeger:16686/jaeger/ui + url: http://jaeger-query:16686/jaeger/ui editable: true isDefault: false jsonData: @@ -16020,3 +16210,27 @@ data: pplEnabled: true timeField: observedTimestamp version: 3.2.0 + prometheus.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 diff --git a/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/opentelemetry-collector/clusterrole.yaml b/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/opentelemetry-collector/clusterrole.yaml deleted file mode 100644 index c468710781..0000000000 --- a/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/opentelemetry-collector/clusterrole.yaml +++ /dev/null @@ -1,24 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/opentelemetry-collector/templates/clusterrole.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: otel-collector - labels: - helm.sh/chart: opentelemetry-collector-0.134.0 - app.kubernetes.io/name: opentelemetry-collector - app.kubernetes.io/instance: example - app.kubernetes.io/version: "0.135.0" - app.kubernetes.io/managed-by: Helm - 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"] diff --git a/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/opentelemetry-collector/clusterrolebinding.yaml b/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/opentelemetry-collector/clusterrolebinding.yaml deleted file mode 100644 index bad505de75..0000000000 --- a/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/opentelemetry-collector/clusterrolebinding.yaml +++ /dev/null @@ -1,22 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/opentelemetry-collector/templates/clusterrolebinding.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: otel-collector - labels: - helm.sh/chart: opentelemetry-collector-0.134.0 - app.kubernetes.io/name: opentelemetry-collector - app.kubernetes.io/instance: example - app.kubernetes.io/version: "0.135.0" - app.kubernetes.io/managed-by: Helm - 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: default diff --git a/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/opentelemetry-collector/configmap.yaml b/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/opentelemetry-collector/configmap.yaml deleted file mode 100644 index b1b83de942..0000000000 --- a/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/opentelemetry-collector/configmap.yaml +++ /dev/null @@ -1,206 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/opentelemetry-collector/templates/configmap.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: otel-collector - namespace: default - labels: - helm.sh/chart: opentelemetry-collector-0.134.0 - app.kubernetes.io/name: opentelemetry-collector - app.kubernetes.io/instance: example - app.kubernetes.io/version: "0.135.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/part-of: opentelemetry-collector - app.kubernetes.io/component: standalone-collector -data: - relay: | - connectors: - spanmetrics: {} - exporters: - debug: {} - opensearch: - http: - endpoint: http://opensearch:9200 - tls: - insecure: true - logs_index: otel-logs - logs_index_time_format: yyyy-MM-dd - otlp: - endpoint: jaeger-collector:4317 - tls: - insecure: true - otlphttp/prometheus: - endpoint: http://prometheus:9090/api/v1/otlp - tls: - insecure: true - extensions: - health_check: - endpoint: ${env:MY_POD_IP}:13133 - processors: - batch: {} - k8sattributes: - extract: - metadata: - - k8s.namespace.name - - k8s.deployment.name - - k8s.statefulset.name - - k8s.daemonset.name - - k8s.cronjob.name - - k8s.job.name - - k8s.node.name - - k8s.pod.name - - k8s.pod.uid - - k8s.pod.start_time - passthrough: false - pod_association: - - sources: - - from: resource_attribute - name: k8s.pod.ip - - sources: - - from: resource_attribute - name: k8s.pod.uid - - sources: - - from: connection - memory_limiter: - check_interval: 5s - limit_percentage: 80 - spike_limit_percentage: 25 - resource: - attributes: - - action: insert - from_attribute: k8s.pod.uid - key: service.instance.id - resourcedetection: - detectors: - - env - - system - transform: - error_mode: ignore - trace_statements: - - context: span - statements: - - replace_pattern(name, "\\?.*", "") - - replace_match(name, "GET /api/products/*", "GET /api/products/{productId}") - receivers: - httpcheck/frontend-proxy: - targets: - - endpoint: http://frontend-proxy:8080 - jaeger: - protocols: - grpc: - endpoint: ${env:MY_POD_IP}:14250 - thrift_compact: - endpoint: ${env:MY_POD_IP}:6831 - thrift_http: - endpoint: ${env:MY_POD_IP}:14268 - nginx: - collection_interval: 10s - endpoint: http://image-provider:8081/status - otlp: - protocols: - grpc: - endpoint: ${env:MY_POD_IP}:4317 - http: - cors: - allowed_origins: - - http://* - - https://* - endpoint: ${env:MY_POD_IP}:4318 - postgresql: - endpoint: postgresql:5432 - metrics: - postgresql.blks_hit: - enabled: true - postgresql.blks_read: - enabled: true - postgresql.deadlocks: - enabled: true - postgresql.tup_deleted: - enabled: true - postgresql.tup_fetched: - enabled: true - postgresql.tup_inserted: - enabled: true - postgresql.tup_returned: - enabled: true - postgresql.tup_updated: - enabled: true - password: otel - tls: - insecure: true - username: root - prometheus: - config: - scrape_configs: - - job_name: opentelemetry-collector - scrape_interval: 10s - static_configs: - - targets: - - ${env:MY_POD_IP}:8888 - redis: - collection_interval: 10s - endpoint: valkey-cart:6379 - username: valkey - zipkin: - endpoint: ${env:MY_POD_IP}:9411 - service: - extensions: - - health_check - pipelines: - logs: - exporters: - - opensearch - - debug - processors: - - k8sattributes - - memory_limiter - - resourcedetection - - resource - - batch - receivers: - - otlp - metrics: - exporters: - - otlphttp/prometheus - - debug - processors: - - k8sattributes - - memory_limiter - - resourcedetection - - resource - - batch - receivers: - - httpcheck/frontend-proxy - - nginx - - otlp - - postgresql - - redis - - spanmetrics - traces: - exporters: - - otlp - - debug - - spanmetrics - processors: - - k8sattributes - - memory_limiter - - resourcedetection - - resource - - transform - - batch - receivers: - - otlp - - jaeger - - zipkin - telemetry: - metrics: - level: detailed - readers: - - periodic: - exporter: - otlp: - endpoint: otel-collector:4318 - protocol: http/protobuf - interval: 10000 - timeout: 5000 diff --git a/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/opentelemetry-collector/deployment.yaml b/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/opentelemetry-collector/deployment.yaml deleted file mode 100644 index 0f3c0ee78e..0000000000 --- a/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/opentelemetry-collector/deployment.yaml +++ /dev/null @@ -1,103 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/opentelemetry-collector/templates/deployment.yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: otel-collector - namespace: default - labels: - helm.sh/chart: opentelemetry-collector-0.134.0 - app.kubernetes.io/name: opentelemetry-collector - app.kubernetes.io/instance: example - app.kubernetes.io/version: "0.135.0" - app.kubernetes.io/managed-by: Helm - 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: example - component: standalone-collector - strategy: - type: RollingUpdate - template: - metadata: - annotations: - checksum/config: 89ab2b74bae6fa5014c8c38576a277e588273c012e42cc485f099bbc2b02a848 - opentelemetry_community_demo: "true" - prometheus.io/scrape: "true" - labels: - app.kubernetes.io/name: opentelemetry-collector - app.kubernetes.io/instance: example - 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 diff --git a/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/opentelemetry-collector/ingress.yaml b/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/opentelemetry-collector/ingress.yaml deleted file mode 100644 index 3cba7823ed..0000000000 --- a/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/opentelemetry-collector/ingress.yaml +++ /dev/null @@ -1,28 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/opentelemetry-collector/templates/ingress.yaml -apiVersion: "networking.k8s.io/v1" -kind: Ingress -metadata: - name: otel-collector - namespace: default - labels: - helm.sh/chart: opentelemetry-collector-0.134.0 - app.kubernetes.io/name: opentelemetry-collector - app.kubernetes.io/instance: example - app.kubernetes.io/version: "0.135.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/part-of: opentelemetry-collector - app.kubernetes.io/component: standalone-collector - component: standalone-collector -spec: - rules: - - host: "otel-demo-collector.example.com" - http: - paths: - - path: / - pathType: Prefix - backend: - service: - name: otel-collector - port: - number: 4318 diff --git a/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/opentelemetry-collector/service.yaml b/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/opentelemetry-collector/service.yaml deleted file mode 100644 index 0da821f866..0000000000 --- a/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/opentelemetry-collector/service.yaml +++ /dev/null @@ -1,54 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/opentelemetry-collector/templates/service.yaml -apiVersion: v1 -kind: Service -metadata: - name: otel-collector - namespace: default - labels: - helm.sh/chart: opentelemetry-collector-0.134.0 - app.kubernetes.io/name: opentelemetry-collector - app.kubernetes.io/instance: example - app.kubernetes.io/version: "0.135.0" - app.kubernetes.io/managed-by: Helm - 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: example - component: standalone-collector - internalTrafficPolicy: Cluster diff --git a/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/opentelemetry-collector/serviceaccount.yaml b/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/opentelemetry-collector/serviceaccount.yaml deleted file mode 100644 index 675701aa20..0000000000 --- a/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/opentelemetry-collector/serviceaccount.yaml +++ /dev/null @@ -1,15 +0,0 @@ ---- -# Source: opentelemetry-demo/charts/opentelemetry-collector/templates/serviceaccount.yaml -apiVersion: v1 -kind: ServiceAccount -metadata: - name: otel-collector - namespace: default - labels: - helm.sh/chart: opentelemetry-collector-0.134.0 - app.kubernetes.io/name: opentelemetry-collector - app.kubernetes.io/instance: example - app.kubernetes.io/version: "0.135.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/part-of: opentelemetry-collector - app.kubernetes.io/component: standalone-collector diff --git a/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/opentelemetry-kube-stack/clusterrole.yaml b/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/opentelemetry-kube-stack/clusterrole.yaml new file mode 100644 index 0000000000..eabfef18d2 --- /dev/null +++ b/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/opentelemetry-kube-stack/clusterrole.yaml @@ -0,0 +1,140 @@ +--- +# Source: opentelemetry-demo/charts/opentelemetry-kube-stack/templates/clusterrole.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: example-collector +rules: +- apiGroups: [""] + resources: + - namespaces + - nodes + - nodes/proxy + - nodes/metrics + - nodes/stats + - services + - endpoints + - pods + - events + - secrets + - persistentvolumeclaims + - persistentvolumes + verbs: ["get", "list", "watch"] +- apiGroups: ["monitoring.coreos.com"] + resources: + - servicemonitors + - podmonitors + - scrapeconfigs + - probes + verbs: ["get", "list", "watch"] +- apiGroups: + - extensions + resources: + - ingresses + verbs: ["get", "list", "watch"] +- apiGroups: + - apps + resources: + - daemonsets + - deployments + - replicasets + - statefulsets + verbs: ["get", "list", "watch"] +- apiGroups: + - networking.k8s.io + resources: + - ingresses + verbs: ["get", "list", "watch"] +- apiGroups: ["discovery.k8s.io"] + resources: + - endpointslices + verbs: ["get", "list", "watch"] +- nonResourceURLs: ["/metrics", "/metrics/cadvisor"] + verbs: ["get"] + +- verbs: + - get + - list + - watch + - create + - update + - patch + - delete + apiGroups: + - coordination.k8s.io + resources: + - leases +- apiGroups: + - "" + resources: + - events + - namespaces + - namespaces/status + - nodes + - nodes/spec + - pods + - pods/status + - replicationcontrollers + - replicationcontrollers/status + - resourcequotas + - services + verbs: + - get + - list + - watch +- apiGroups: + - apps + resources: + - daemonsets + - deployments + - replicasets + - statefulsets + verbs: + - get + - list + - watch +- apiGroups: + - extensions + resources: + - daemonsets + - deployments + - replicasets + verbs: + - get + - list + - watch +- apiGroups: + - batch + resources: + - jobs + - cronjobs + verbs: + - get + - list + - watch +- apiGroups: + - autoscaling + resources: + - horizontalpodautoscalers + verbs: + - get + - list + - watch +- apiGroups: ["events.k8s.io"] + resources: ["events"] + verbs: ["watch", "list"] +--- +# Source: opentelemetry-demo/charts/opentelemetry-kube-stack/templates/clusterrole.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: otel-demo-daemon +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: example-collector +subjects: +- kind: ServiceAccount + # quirk of the Operator + name: "otel-demo-daemon-collector" + namespace: default diff --git a/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/opentelemetry-kube-stack/collector.yaml b/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/opentelemetry-kube-stack/collector.yaml new file mode 100644 index 0000000000..037ac4bb5b --- /dev/null +++ b/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/opentelemetry-kube-stack/collector.yaml @@ -0,0 +1,290 @@ +--- +# Source: opentelemetry-demo/charts/opentelemetry-kube-stack/templates/collector.yaml +apiVersion: opentelemetry.io/v1beta1 +kind: OpenTelemetryCollector +metadata: + name: otel-demo-daemon + namespace: default + labels: + helm.sh/chart: opentelemetry-kube-stack-0.11.1 + app.kubernetes.io/version: "0.129.1" + app.kubernetes.io/managed-by: Helm + release: "example" +spec: + managementState: managed + mode: daemonset + config: + connectors: + spanmetrics: {} + exporters: + debug: {} + opensearch: + http: + endpoint: http://opensearch:9200 + tls: + insecure: true + logs_index: otel-logs + logs_index_time_format: yyyy-MM-dd + otlp/jaeger: + endpoint: http://jaeger-collector:4317 + tls: + insecure: true + otlphttp/prometheus: + endpoint: http://prometheus:9090/api/v1/otlp + tls: + insecure: true + extensions: + health_check: + endpoint: 0.0.0.0:13133 + k8s_leader_elector/k8s_cluster: + auth_type: serviceAccount + lease_name: k8s.cluster.receiver.opentelemetry.io + lease_namespace: default + k8s_leader_elector/k8s_objects: + auth_type: serviceAccount + lease_name: k8s.objects.receiver.opentelemetry.io + lease_namespace: default + k8s_observer: + observe_ingresses: true + observe_nodes: true + observe_services: true + processors: + batch: + send_batch_max_size: 1500 + send_batch_size: 1000 + timeout: 1s + k8sattributes: + extract: + labels: + - from: pod + key: app.kubernetes.io/instance + tag_name: k8s.app.instance + - from: pod + key: app.kubernetes.io/component + tag_name: k8s.app.component + metadata: + - k8s.namespace.name + - k8s.pod.name + - k8s.pod.uid + - k8s.node.name + - k8s.pod.start_time + - k8s.deployment.name + - k8s.replicaset.name + - k8s.replicaset.uid + - k8s.daemonset.name + - k8s.daemonset.uid + - k8s.job.name + - k8s.job.uid + - k8s.container.name + - k8s.cronjob.name + - k8s.statefulset.name + - k8s.statefulset.uid + - container.image.tag + - container.image.name + - k8s.cluster.uid + - service.namespace + - service.name + - service.version + - service.instance.id + otel_annotations: true + filter: + node_from_env_var: OTEL_K8S_NODE_NAME + passthrough: false + pod_association: + - sources: + - from: resource_attribute + name: k8s.pod.uid + - sources: + - from: resource_attribute + name: k8s.pod.name + - from: resource_attribute + name: k8s.namespace.name + - from: resource_attribute + name: k8s.node.name + - sources: + - from: resource_attribute + name: k8s.pod.ip + - sources: + - from: resource_attribute + name: k8s.pod.name + - from: resource_attribute + name: k8s.namespace.name + - sources: + - from: connection + resource/hostname: + attributes: + - action: insert + from_attribute: k8s.node.name + key: host.name + resourcedetection/env: + detectors: + - env + - k8snode + override: false + timeout: 2s + transform/fix_nextjs_span_name: + error_mode: ignore + trace_statements: + - context: span + statements: + - replace_pattern(name, "\\?.*", "") + - replace_match(name, "GET /api/products/*", "GET /api/products/{productId}") + receivers: + k8s_cluster: + allocatable_types_to_report: + - cpu + - memory + - storage + auth_type: serviceAccount + collection_interval: 10s + k8s_leader_elector: k8s_leader_elector/k8s_cluster + node_conditions_to_report: + - Ready + - MemoryPressure + - DiskPressure + - NetworkUnavailable + k8sobjects: + k8s_leader_elector: k8s_leader_elector/k8s_objects + objects: + - exclude_watch_type: + - DELETED + group: events.k8s.io + mode: watch + name: events + kubeletstats: + auth_type: serviceAccount + collection_interval: 15s + endpoint: https://${env:OTEL_K8S_NODE_IP}:10250 + extra_metadata_labels: + - container.id + - k8s.volume.type + insecure_skip_verify: true + k8s_api_config: + auth_type: serviceAccount + metric_groups: + - node + - pod + - volume + - container + metrics: + container.cpu.usage: + enabled: true + k8s.node.cpu.usage: + enabled: true + k8s.node.uptime: + enabled: true + k8s.pod.cpu.usage: + enabled: true + k8s.pod.uptime: + enabled: true + otlp: + protocols: + grpc: + endpoint: 0.0.0.0:4317 + http: + cors: + allowed_origins: + - http://* + - https://* + endpoint: 0.0.0.0:4318 + receiver_creator/k8s: + discovery: + enabled: true + watch_observers: + - k8s_observer + service: + extensions: + - health_check + - k8s_observer + - k8s_leader_elector/k8s_objects + - k8s_leader_elector/k8s_cluster + pipelines: + logs: + exporters: + - opensearch + processors: + - k8sattributes + - resourcedetection/env + - resource/hostname + - batch + receivers: + - otlp + - k8sobjects + metrics: + exporters: + - otlphttp/prometheus + processors: + - k8sattributes + - resourcedetection/env + - resource/hostname + - batch + receivers: + - otlp + - receiver_creator/k8s + - spanmetrics + - kubeletstats + - k8s_cluster + traces: + exporters: + - otlp/jaeger + - spanmetrics + processors: + - k8sattributes + - resourcedetection/env + - resource/hostname + - transform/fix_nextjs_span_name + - batch + receivers: + - otlp + telemetry: + logs: + level: info + metrics: + readers: + - pull: + exporter: + prometheus: + host: 0.0.0.0 + port: 8888 + image: "otel/opentelemetry-collector-contrib:0.134.1" + imagePullPolicy: IfNotPresent + upgradeStrategy: automatic + terminationGracePeriodSeconds: 30 + resources: + limits: + cpu: 200m + memory: 500Mi + requests: + cpu: 100m + memory: 250Mi + securityContext: + runAsGroup: 0 + runAsUser: 0 + targetAllocator: + enabled: false + env: + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + - name: OTEL_K8S_NODE_IP + valueFrom: + fieldRef: + fieldPath: status.hostIP + - name: OTEL_K8S_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.namespace + - name: OTEL_K8S_POD_NAME + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.name + - name: OTEL_K8S_POD_IP + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: status.podIP + - name: OTEL_RESOURCE_ATTRIBUTES + value: "k8s.cluster.name=otel-demo-stack" diff --git a/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/opentelemetry-kube-stack/hooks.yaml b/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/opentelemetry-kube-stack/hooks.yaml new file mode 100644 index 0000000000..21e0f367a0 --- /dev/null +++ b/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/opentelemetry-kube-stack/hooks.yaml @@ -0,0 +1,64 @@ +--- +# Source: opentelemetry-demo/charts/opentelemetry-kube-stack/templates/hooks.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: delete-resources-sa + annotations: + "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded +--- +# Source: opentelemetry-demo/charts/opentelemetry-kube-stack/templates/hooks.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: delete-resources-role + annotations: + "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded +rules: + - apiGroups: + - opentelemetry.io + resources: + - instrumentations + - opampbridges + - opentelemetrycollectors + verbs: + - get + - list + - delete +--- +# Source: opentelemetry-demo/charts/opentelemetry-kube-stack/templates/hooks.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: delete-resources-rolebinding + annotations: + "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: delete-resources-role +subjects: + - kind: ServiceAccount + name: delete-resources-sa +--- +# Source: opentelemetry-demo/charts/opentelemetry-kube-stack/templates/hooks.yaml +apiVersion: batch/v1 +kind: Job +metadata: + name: opentelemetry-kube-stack-pre-delete-job + annotations: + "helm.sh/hook": pre-delete + "helm.sh/hook-delete-policy": hook-succeeded,hook-failed +spec: + template: + spec: + restartPolicy: Never + serviceAccountName: delete-resources-sa + containers: + - name: delete-resources + image: "rancher/kubectl:v1.34.1" + args: + - "delete" + - "instrumentations,opampbridges,opentelemetrycollectors" + - "-l" + - "helm.sh/chart=opentelemetry-kube-stack-0.11.1" diff --git a/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/product-catalog-products.yaml b/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/product-catalog-products.yaml index 047185144c..5b0c601396 100644 --- a/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/product-catalog-products.yaml +++ b/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/product-catalog-products.yaml @@ -6,7 +6,7 @@ metadata: name: product-catalog-products namespace: default labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" diff --git a/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/prometheus/cm.yaml b/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/prometheus/cm.yaml index a5e59fac28..6218e3c0a7 100644 --- a/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/prometheus/cm.yaml +++ b/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/prometheus/cm.yaml @@ -53,6 +53,7 @@ data: - postgresql.schema.name - postgresql.table.name - postgresql.index.name + - database rule_files: - /etc/config/recording_rules.yml - /etc/config/alerting_rules.yml diff --git a/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/serviceaccount.yaml b/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/serviceaccount.yaml index 64279d14a2..b72148e91d 100644 --- a/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/serviceaccount.yaml +++ b/charts/opentelemetry-demo/examples/public-hosted-ingress/rendered/serviceaccount.yaml @@ -5,7 +5,7 @@ kind: ServiceAccount metadata: name: example labels: - helm.sh/chart: opentelemetry-demo-0.38.4 + helm.sh/chart: opentelemetry-demo-0.39.0 app.kubernetes.io/version: "2.1.3" diff --git a/charts/opentelemetry-demo/examples/public-hosted-ingress/values.yaml b/charts/opentelemetry-demo/examples/public-hosted-ingress/values.yaml index beb395ce1a..4b2b722f05 100644 --- a/charts/opentelemetry-demo/examples/public-hosted-ingress/values.yaml +++ b/charts/opentelemetry-demo/examples/public-hosted-ingress/values.yaml @@ -2,7 +2,7 @@ components: frontend: envOverrides: - name: PUBLIC_OTEL_EXPORTER_OTLP_TRACES_ENDPOINT - value: https://otel-demo-collector.example.com/v1/traces + value: https://otel-demo.example.com/otlp-http/v1/traces frontend-proxy: ingress: @@ -13,13 +13,3 @@ components: - path: / pathType: Prefix port: 8080 - -opentelemetry-collector: - ingress: - enabled: true - hosts: - - host: otel-demo-collector.example.com - paths: - - path: / - pathType: Prefix - port: 4318 diff --git a/charts/opentelemetry-demo/grafana/provisioning/alerting/cart-service-alerting.yml b/charts/opentelemetry-demo/grafana/provisioning/alerting/cart-service-alerting.yaml similarity index 93% rename from charts/opentelemetry-demo/grafana/provisioning/alerting/cart-service-alerting.yml rename to charts/opentelemetry-demo/grafana/provisioning/alerting/cart-service-alerting.yaml index d811ecac22..4ed7eaeafd 100644 --- a/charts/opentelemetry-demo/grafana/provisioning/alerting/cart-service-alerting.yml +++ b/charts/opentelemetry-demo/grafana/provisioning/alerting/cart-service-alerting.yaml @@ -26,8 +26,8 @@ groups: sum by (deployment_environment_name, service_namespace, service_name, service_instance_id, http_route, http_request_method, le) ( rate( http_server_request_duration_seconds_bucket{ - deployment_environment_name="", - service_namespace="opentelemetry-demo", + deployment_environment_name="demo", + service_namespace="otel-demo", service_name="cart", http_request_method="POST", http_route="/oteldemo.CartService/AddItem" @@ -85,7 +85,8 @@ groups: $labels.http_request_method }} {{ $labels.http_route }}" labels: service_name: cart - service_namespace: opentelemetry-demo + service_namespace: otel-demo + deployment_environment_name: demo severity: warning team_name: webstore isPaused: false diff --git a/charts/opentelemetry-demo/grafana/provisioning/dashboards/apm-dashboard.json b/charts/opentelemetry-demo/grafana/provisioning/dashboards/apm-dashboard.json index cbcc4a50ff..29d52b7a46 100644 --- a/charts/opentelemetry-demo/grafana/provisioning/dashboards/apm-dashboard.json +++ b/charts/opentelemetry-demo/grafana/provisioning/dashboards/apm-dashboard.json @@ -25,7 +25,7 @@ "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 1, - "id": 5, + "id": 1, "links": [], "panels": [ { @@ -50,7 +50,7 @@ "content": "

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

\n", "mode": "html" }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "title": "", "type": "text" }, @@ -108,7 +108,7 @@ "textMode": "auto", "wideLayout": true }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "datasource": { @@ -177,6 +177,7 @@ "type": "log" }, "showPoints": "auto", + "showValues": false, "spanNulls": false, "stacking": { "group": "A", @@ -226,7 +227,7 @@ "sort": "none" } }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "datasource": { @@ -330,6 +331,7 @@ "type": "linear" }, "showPoints": "auto", + "showValues": false, "spanNulls": false, "stacking": { "group": "A", @@ -378,7 +380,7 @@ "sort": "none" } }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "datasource": { @@ -453,6 +455,7 @@ "type": "log" }, "showPoints": "auto", + "showValues": false, "spanNulls": false, "stacking": { "group": "A", @@ -502,7 +505,7 @@ "sort": "none" } }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "datasource": { @@ -568,7 +571,7 @@ }, "viewMode": "list" }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "title": "Alerts", "type": "alertlist" }, @@ -588,6 +591,9 @@ "cellOptions": { "type": "auto" }, + "footer": { + "reducers": [] + }, "inspect": false }, "mappings": [], @@ -658,14 +664,6 @@ "id": 21, "options": { "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, "showHeader": true, "sortBy": [ { @@ -674,7 +672,7 @@ } ] }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "datasource": { @@ -782,6 +780,9 @@ "cellOptions": { "type": "auto" }, + "footer": { + "reducers": [] + }, "inspect": false }, "mappings": [], @@ -848,14 +849,6 @@ "id": 27, "options": { "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, "showHeader": true, "sortBy": [ { @@ -864,7 +857,7 @@ } ] }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "datasource": { @@ -986,6 +979,9 @@ "cellOptions": { "type": "auto" }, + "footer": { + "reducers": [] + }, "inspect": false }, "mappings": [], @@ -1052,17 +1048,9 @@ "id": 23, "options": { "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, "showHeader": true }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "datasource": { @@ -1172,6 +1160,9 @@ "cellOptions": { "type": "auto" }, + "footer": { + "reducers": [] + }, "inspect": false }, "mappings": [], @@ -1238,18 +1229,10 @@ "id": 24, "options": { "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, "showHeader": true, "sortBy": [] }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "datasource": { @@ -1365,6 +1348,9 @@ "cellOptions": { "type": "auto" }, + "footer": { + "reducers": [] + }, "inspect": false }, "mappings": [], @@ -1431,17 +1417,9 @@ "id": 32, "options": { "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, "showHeader": true }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "datasource": { @@ -1546,7 +1524,7 @@ }, "id": 42, "panels": [], - "title": "Service instances", + "title": "Infrastructure", "type": "row" }, { @@ -1564,6 +1542,9 @@ "cellOptions": { "type": "auto" }, + "footer": { + "reducers": [] + }, "inspect": false }, "mappings": [], @@ -1597,7 +1578,7 @@ { "matcher": { "id": "byName", - "options": "Host Memory" + "options": "Host Used Memory" }, "properties": [ { @@ -1609,7 +1590,7 @@ ] }, "gridPos": { - "h": 4, + "h": 3, "w": 24, "x": 0, "y": 27 @@ -1617,26 +1598,18 @@ "id": 41, "options": { "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, "frameIndex": 1, "showHeader": true }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "editorMode": "code", - "expr": "sum by (service_instance_id_host_name) (\n label_join(\n (\n sum by (service_instance_id, host_name) (\n rate(system_cpu_time_seconds_total{job=\"\", state!=\"idle\"}[$__rate_interval])\n )\n * on(host_name) group_left(service_instance_id)\n target_info{service_name=\"${service_name}\"}\n ),\n \"service_instance_id_host_name\",\n \" / \",\n \"service_instance_id\",\n \"host_name\"\n )\n)", + "expr": "sum by (host_name) (\n rate(system_cpu_time_seconds_total{service_name=\"\", state!=\"idle\"}[$__rate_interval])\n)\n* on(host_name) \ngroup by (host_name) (\n target_info{service_name=\"${service_name}\", service_instance_id!=\"\"}\n)", "hide": false, "legendFormat": "__auto", "range": true, - "refId": "cpu_time_percentage" + "refId": "cpu_time_pct" }, { "datasource": { @@ -1644,7 +1617,7 @@ "uid": "webstore-metrics" }, "editorMode": "code", - "expr": "sum by (service_instance_id_host_name) (\n label_join(\n (\n (\n sum by (service_instance_id, host_name) (\n system_memory_usage_bytes{job=\"\", state!=\"free\"}\n )\n /\n sum by (service_instance_id, host_name) (\n system_memory_usage_bytes{job=\"\"}\n )\n )\n * on(host_name) group_left(service_instance_id) (\n target_info{service_name=\"${service_name}\"}\n )\n ),\n \"service_instance_id_host_name\",\n \" / \",\n \"service_instance_id\",\n \"host_name\"\n )\n)", + "expr": " (\n (\n sum by (host_name) (\n system_memory_usage_bytes{service_name=\"\", state=\"used\"}\n )\n /\n sum by (host_name) (\n system_memory_usage_bytes{service_name=\"\"}\n )\n )\n * on(host_name) (\n group by (host_name) (\n target_info{service_name=\"${service_name}\"}\n )\n )\n )\n", "hide": false, "instant": false, "legendFormat": "__auto", @@ -1652,7 +1625,7 @@ "refId": "memory_usage_pct" } ], - "title": "Service instance / host", + "title": "", "transformations": [ { "id": "timeSeriesTable", @@ -1660,6 +1633,9 @@ "A": { "timeField": "Time" }, + "cpu_time_pct": { + "timeField": "Time" + }, "cpu_time_percentage": { "timeField": "Time" }, @@ -1671,7 +1647,7 @@ { "id": "joinByField", "options": { - "byField": "service_instance_id_host_name", + "byField": "host_name", "mode": "outer" } }, @@ -1682,8 +1658,152 @@ "includeByName": {}, "indexByName": {}, "renameByName": { + "Trend #cpu_time_pct": "Host CPU", + "Trend #cpu_time_percentage": "Host CPU", + "Trend #memory_usage_pct": "Host Used Memory", + "host_name": "Host", + "service_instance_id_host_name": "Instance / Host" + } + } + } + ], + "type": "table" + }, + { + "datasource": { + "type": "prometheus", + "uid": "webstore-metrics" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "footer": { + "reducers": [] + }, + "inspect": false + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Pod CPU usage" + }, + "properties": [ + { + "id": "unit", + "value": "percentunit" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Pod Memory Usage" + }, + "properties": [ + { + "id": "unit", + "value": "decbytes" + } + ] + } + ] + }, + "gridPos": { + "h": 3, + "w": 24, + "x": 0, + "y": 30 + }, + "id": 43, + "options": { + "cellHeight": "sm", + "frameIndex": 1, + "showHeader": true + }, + "pluginVersion": "12.2.0", + "targets": [ + { + "editorMode": "code", + "expr": "sum by (k8s_pod_name) (\n rate(k8s_pod_cpu_time_seconds_total{}[$__rate_interval])\n)\n* on(k8s_pod_name) \ngroup by (k8s_pod_name) (\n target_info{service_name=\"${service_name}\", service_instance_id!=\"\"}\n)\n", + "hide": false, + "legendFormat": "__auto", + "range": true, + "refId": "cpu_time_pct" + }, + { + "datasource": { + "type": "prometheus", + "uid": "webstore-metrics" + }, + "editorMode": "code", + "expr": "\nsum by (k8s_pod_name) (\n k8s_pod_memory_working_set_bytes{}\n)\n* on(k8s_pod_name)\ngroup by (k8s_pod_name) (\n target_info{service_name=\"${service_name}\", service_instance_id!=\"\"}\n)\n", + "hide": false, + "instant": false, + "legendFormat": "__auto", + "range": true, + "refId": "memory_usage_bytes" + } + ], + "title": "", + "transformations": [ + { + "id": "timeSeriesTable", + "options": { + "A": { + "timeField": "Time" + }, + "cpu_time_percentage": { + "timeField": "Time" + }, + "memory_usage_pct": { + "timeField": "Time" + } + } + }, + { + "id": "joinByField", + "options": { + "byField": "k8s_pod_name", + "mode": "outer" + } + }, + { + "id": "organize", + "options": { + "excludeByName": { + "service_instance_id": true + }, + "includeByName": {}, + "indexByName": {}, + "renameByName": { + "Trend #cpu_time_pct": "Pod CPU usage", "Trend #cpu_time_percentage": "Host CPU", + "Trend #memory_usage_bytes": "Pod Memory Usage", "Trend #memory_usage_pct": "Host Memory", + "k8s_pod_name": "Kubernetes Pod Name", "service_instance_id_host_name": "Instance / Host" } } @@ -1697,7 +1817,7 @@ "h": 1, "w": 24, "x": 0, - "y": 31 + "y": 33 }, "id": 25, "panels": [], @@ -1720,6 +1840,9 @@ "cellOptions": { "type": "auto" }, + "footer": { + "reducers": [] + }, "inspect": false }, "mappings": [], @@ -1781,23 +1904,15 @@ "h": 15, "w": 24, "x": 0, - "y": 32 + "y": 34 }, "id": 26, "options": { "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, "showHeader": true, "sortBy": [] }, - "pluginVersion": "12.1.0", + "pluginVersion": "12.2.0", "targets": [ { "alias": "", @@ -1864,156 +1979,150 @@ "type": "table" }, { - "collapsed": true, + "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, - "y": 47 + "y": 49 }, "id": 29, - "panels": [ - { - "datasource": { - "type": "jaeger", - "uid": "${jaeger_datasource}" + "panels": [], + "title": "Traces", + "type": "row" + }, + { + "datasource": { + "type": "jaeger", + "uid": "${jaeger_datasource}" + }, + "description": "Traces containing a span emitted by the service", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" }, - "description": "Traces containing a span emitted by the service", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "cellOptions": { - "type": "auto" - }, - "inspect": false - }, - "mappings": [], - "noValue": "No traces", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": 0 - }, - { - "color": "red", - "value": 80 - } - ] - } + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" }, - "overrides": [ + "footer": { + "reducers": [] + }, + "inspect": false + }, + "mappings": [], + "noValue": "No traces", + "thresholds": { + "mode": "absolute", + "steps": [ { - "matcher": { - "id": "byName", - "options": "Trace Service" - }, - "properties": [ - { - "id": "custom.hidden", - "value": true - } - ] + "color": "green", + "value": 0 }, { - "matcher": { - "id": "byName", - "options": "Span ID" - }, - "properties": [ - { - "id": "custom.hidden", - "value": false - } - ] - }, + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Trace Service" + }, + "properties": [ { - "matcher": { - "id": "byName", - "options": "deployment.environment.name" - }, - "properties": [ - { - "id": "custom.hidden", - "value": true - } - ] - }, + "id": "custom.hideFrom.viz", + "value": true + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Span ID" + }, + "properties": [ { - "matcher": { - "id": "byName", - "options": "service.name" - }, - "properties": [ - { - "id": "custom.hidden", - "value": true - } - ] - }, + "id": "custom.hideFrom.viz", + "value": false + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "deployment.environment.name" + }, + "properties": [ { - "matcher": { - "id": "byName", - "options": "service.namespace" - }, - "properties": [ - { - "id": "custom.hidden", - "value": true - } - ] + "id": "custom.hideFrom.viz", + "value": true } ] }, - "gridPos": { - "h": 8, - "w": 15, - "x": 0, - "y": 58 + { + "matcher": { + "id": "byName", + "options": "service.name" + }, + "properties": [ + { + "id": "custom.hideFrom.viz", + "value": true + } + ] }, - "id": 30, - "options": { - "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "frameIndex": 0, - "showHeader": true - }, - "pluginVersion": "12.1.0", - "targets": [ - { - "datasource": { - "type": "jaeger", - "uid": "${jaeger_datasource}" - }, - "queryType": "search", - "refId": "A", - "service": "$service_name", - "tags": "service.namespace=\"$service_namespace\"" - } - ], - "title": "", - "type": "table" + { + "matcher": { + "id": "byName", + "options": "service.namespace" + }, + "properties": [ + { + "id": "custom.hideFrom.viz", + "value": true + } + ] + } + ] + }, + "gridPos": { + "h": 8, + "w": 15, + "x": 0, + "y": 50 + }, + "id": 30, + "options": { + "cellHeight": "sm", + "frameIndex": 0, + "showHeader": true + }, + "pluginVersion": "12.2.0", + "targets": [ + { + "datasource": { + "type": "jaeger", + "uid": "${jaeger_datasource}" + }, + "queryType": "search", + "refId": "A", + "service": "$service_name", + "tags": "service.namespace=\"$service_namespace\"" } ], - "title": "Traces", - "type": "row" + "title": "", + "type": "table" } ], "preload": false, "refresh": "30s", - "schemaVersion": 41, + "schemaVersion": 42, "tags": [], "templating": { "list": [ @@ -2064,23 +2173,34 @@ }, { "current": { - "text": ".*", - "value": ".*" + "text": "demo", + "value": "demo" }, - "description": "Waiting to implement support of the optional value of `deployment.environment.name` in the OpenSearch and Jager panels, hide variable.", - "hide": 2, + "definition": "label_values(target_info,deployment_environment_name)", "label": "Environment", "name": "deployment_environment_name", - "query": ".*", - "skipUrlSync": true, - "type": "constant" + "options": [], + "query": { + "qryType": 1, + "query": "label_values(target_info,deployment_environment_name)", + "refId": "PrometheusVariableQueryEditor-VariableQuery" + }, + "refresh": 1, + "regex": "", + "staticOptions": [ + { + "text": "<>", + "value": "" + } + ], + "type": "query" }, { "allValue": ".*", "allowCustomValue": false, "current": { - "text": "opentelemetry-demo", - "value": "opentelemetry-demo" + "text": "otel-demo", + "value": "otel-demo" }, "datasource": { "type": "prometheus", diff --git a/charts/opentelemetry-demo/grafana/provisioning/datasources/jaeger.yaml b/charts/opentelemetry-demo/grafana/provisioning/datasources/jaeger.yaml index 08c93bde61..af6c643502 100644 --- a/charts/opentelemetry-demo/grafana/provisioning/datasources/jaeger.yaml +++ b/charts/opentelemetry-demo/grafana/provisioning/datasources/jaeger.yaml @@ -8,7 +8,7 @@ datasources: - name: Jaeger uid: webstore-traces type: jaeger - url: http://jaeger:16686/jaeger/ui + url: http://jaeger-query:16686/jaeger/ui editable: true isDefault: false jsonData: diff --git a/charts/opentelemetry-demo/grafana/provisioning/datasources/default.yaml b/charts/opentelemetry-demo/grafana/provisioning/datasources/prometheus.yaml similarity index 100% rename from charts/opentelemetry-demo/grafana/provisioning/datasources/default.yaml rename to charts/opentelemetry-demo/grafana/provisioning/datasources/prometheus.yaml diff --git a/charts/opentelemetry-demo/values.schema.json b/charts/opentelemetry-demo/values.schema.json index 20780dae3f..e445da0d24 100644 --- a/charts/opentelemetry-demo/values.schema.json +++ b/charts/opentelemetry-demo/values.schema.json @@ -35,7 +35,7 @@ "components": { "$ref": "#/definitions/Components" }, - "opentelemetry-collector": { + "opentelemetry-kube-stack": { "type": "object" }, "jaeger": { diff --git a/charts/opentelemetry-demo/values.yaml b/charts/opentelemetry-demo/values.yaml index 1fedd2d32e..c08fa174a3 100644 --- a/charts/opentelemetry-demo/values.yaml +++ b/charts/opentelemetry-demo/values.yaml @@ -1,18 +1,39 @@ # yaml-language-server: $schema=./values.schema.json default: # List of environment variables applied to all components + # Format: {name: some_name, value: some_value} or {name: some_name, valueFrom: ...} env: + # Emulate otel operator instrumentation injection OTEL_* config + # because the OTel Demo Helm Chart cannot wait for the otel-operator to be up and running + # before deploying the demo components so they get instrumented. - name: OTEL_SERVICE_NAME valueFrom: fieldRef: apiVersion: v1 - fieldPath: "metadata.labels['app.kubernetes.io/component']" - - name: OTEL_COLLECTOR_NAME - value: otel-collector + fieldPath: "metadata.annotations['resource.opentelemetry.io/service.name']" + - name: OTEL_SERVICE_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: "metadata.annotations['resource.opentelemetry.io/service.namespace']" + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: "http://otel-demo-daemon-collector:4317" + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: grpc + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName - name: OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE value: cumulative + - name: OTEL_COLLECTOR_HOST + value: otel-demo-daemon-collector - name: OTEL_RESOURCE_ATTRIBUTES - value: 'service.name=$(OTEL_SERVICE_NAME),service.namespace=opentelemetry-demo,service.version={{ .Chart.AppVersion }}' + value: 'service.namespace=$(OTEL_SERVICE_NAMESPACE),service.version={{ .Chart.AppVersion }},deployment.environment.name=demo' + - name: OTEL_PROPAGATORS + value: "tracecontext,baggage" + - name: OTEL_TRACES_SAMPLER + value: parentbased_always_on # Allows overriding and additions to .Values.default.env envOverrides: [] # - name: OTEL_K8S_NODE_NAME @@ -170,15 +191,22 @@ components: enabled: true useDefault: env: true + podAnnotations: + resource.opentelemetry.io/service.name: accounting + resource.opentelemetry.io/service.namespace: opentelemetry-demo env: - 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" + envOverrides: + # Use the http/protobuf OTLP endpoint when the global config is the grpc endpoint + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4318 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: "http/protobuf" resources: limits: memory: 120Mi @@ -193,6 +221,9 @@ components: env: true service: port: 8080 + podAnnotations: + resource.opentelemetry.io/service.name: ad + resource.opentelemetry.io/service.namespace: opentelemetry-demo env: - name: AD_PORT value: "8080" @@ -200,10 +231,14 @@ components: value: flagd - name: FLAGD_PORT value: "8013" - - name: OTEL_EXPORTER_OTLP_ENDPOINT - value: http://$(OTEL_COLLECTOR_NAME):4318 - name: OTEL_LOGS_EXPORTER value: otlp + envOverrides: + # Use the http/protobuf OTLP endpoint when the global config is the grpc endpoint + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4318 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: "http/protobuf" resources: limits: memory: 300Mi @@ -214,6 +249,9 @@ components: env: true service: port: 8080 + podAnnotations: + resource.opentelemetry.io/service.name: cart + resource.opentelemetry.io/service.namespace: opentelemetry-demo env: - name: CART_PORT value: "8080" @@ -225,8 +263,6 @@ components: value: flagd - name: FLAGD_PORT value: "8013" - - name: OTEL_EXPORTER_OTLP_ENDPOINT - value: http://$(OTEL_COLLECTOR_NAME):4317 resources: limits: memory: 160Mi @@ -262,10 +298,11 @@ components: value: flagd - name: FLAGD_PORT value: "8013" - - name: OTEL_EXPORTER_OTLP_ENDPOINT - value: http://$(OTEL_COLLECTOR_NAME):4317 - name: GOMEMLIMIT value: 16MiB + podAnnotations: + resource.opentelemetry.io/service.name: checkout + resource.opentelemetry.io/service.namespace: opentelemetry-demo resources: limits: memory: 20Mi @@ -283,10 +320,11 @@ components: env: - name: CURRENCY_PORT value: "8080" - - name: OTEL_EXPORTER_OTLP_ENDPOINT - value: http://$(OTEL_COLLECTOR_NAME):4317 - name: VERSION value: "{{ .Chart.AppVersion }}" + podAnnotations: + resource.opentelemetry.io/service.name: currency + resource.opentelemetry.io/service.namespace: opentelemetry-demo resources: limits: memory: 20Mi @@ -297,17 +335,26 @@ components: env: true service: port: 8080 + podAnnotations: + resource.opentelemetry.io/service.name: email + resource.opentelemetry.io/service.namespace: opentelemetry-demo env: - name: EMAIL_PORT value: "8080" - name: APP_ENV value: production - - name: OTEL_EXPORTER_OTLP_ENDPOINT - value: http://$(OTEL_COLLECTOR_NAME):4318 + - name: OTEL_EXPORTER_OTLP_TRACES_ENDPOINT + value: http://otel-demo-daemon-collector:4318/v1/traces - name: FLAGD_HOST value: flagd - name: FLAGD_PORT value: "8013" + envOverrides: + # Use the http/protobuf OTLP endpoint when the global config is the grpc endpoint + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4318 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: "http/protobuf" resources: limits: memory: 100Mi @@ -316,6 +363,9 @@ components: enabled: true useDefault: env: true + podAnnotations: + resource.opentelemetry.io/service.name: fraud-detection + resource.opentelemetry.io/service.namespace: opentelemetry-demo env: - name: KAFKA_ADDR value: kafka:9092 @@ -323,12 +373,16 @@ components: 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" + envOverrides: + # Use the http/protobuf OTLP endpoint when the global config is the grpc endpoint + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4318 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: "http/protobuf" resources: limits: memory: 300Mi @@ -370,14 +424,13 @@ components: 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 # This expects users to use `kubectl port-forward ...` + podAnnotations: + resource.opentelemetry.io/service.name: frontend + resource.opentelemetry.io/service.namespace: opentelemetry-demo resources: limits: memory: 250Mi @@ -392,6 +445,14 @@ components: env: true service: port: 8080 + podAnnotations: + resource.opentelemetry.io/service.name: frontend-proxy + resource.opentelemetry.io/service.namespace: opentelemetry-demo + io.opentelemetry.discovery.metrics/enabled: 'true' + io.opentelemetry.discovery.metrics/scraper: httpcheck + io.opentelemetry.discovery.metrics/config: | + targets: + - endpoint: "http://`endpoint`" # FIXME why isn't `endpoint` interpolated? env: - name: ENVOY_PORT value: "8080" @@ -425,8 +486,7 @@ components: value: load-generator - name: LOCUST_WEB_PORT value: "8089" - - name: OTEL_COLLECTOR_HOST - value: $(OTEL_COLLECTOR_NAME) + # workaround https://github.com/open-telemetry/opentelemetry-helm-charts/issues/1888 - name: OTEL_COLLECTOR_PORT_GRPC value: "4317" - name: OTEL_COLLECTOR_PORT_HTTP @@ -445,13 +505,21 @@ components: env: true service: port: 8081 + podAnnotations: + resource.opentelemetry.io/service.name: image-provider + resource.opentelemetry.io/service.namespace: opentelemetry-demo + io.opentelemetry.discovery.metrics/enabled: 'true' + io.opentelemetry.discovery.metrics/scraper: nginx + io.opentelemetry.discovery.metrics/config: | + endpoint: "http://`endpoint`/status" + collection_interval: "10s" + timeout: "20s" env: - name: IMAGE_PROVIDER_PORT value: "8081" + # https://github.com/open-telemetry/opentelemetry-helm-charts/issues/1888 - name: OTEL_COLLECTOR_PORT_GRPC value: "4317" - - name: OTEL_COLLECTOR_HOST - value: $(OTEL_COLLECTOR_NAME) resources: limits: memory: 50Mi @@ -487,8 +555,9 @@ components: value: "8013" - name: FLAGD_OFREP_PORT value: "8016" - - name: OTEL_EXPORTER_OTLP_ENDPOINT - value: http://$(OTEL_COLLECTOR_NAME):4317 + podAnnotations: + resource.opentelemetry.io/service.name: load-generator + resource.opentelemetry.io/service.namespace: opentelemetry-demo resources: limits: memory: 1500Mi @@ -506,8 +575,9 @@ components: value: flagd - name: FLAGD_PORT value: "8013" - - name: OTEL_EXPORTER_OTLP_ENDPOINT - value: http://$(OTEL_COLLECTOR_NAME):4317 + podAnnotations: + resource.opentelemetry.io/service.name: payment + resource.opentelemetry.io/service.namespace: opentelemetry-demo resources: limits: memory: 120Mi @@ -531,14 +601,15 @@ components: value: flagd - name: FLAGD_PORT value: "8013" - - name: OTEL_EXPORTER_OTLP_ENDPOINT - value: http://$(OTEL_COLLECTOR_NAME):4317 - name: GOMEMLIMIT value: 16MiB mountedConfigMaps: - name: product-catalog-products mountPath: /usr/src/app/products existingConfigMap: product-catalog-products + podAnnotations: + resource.opentelemetry.io/service.name: product-catalog + resource.opentelemetry.io/service.namespace: opentelemetry-demo resources: limits: memory: 20Mi @@ -549,6 +620,9 @@ components: env: true service: port: 8080 + podAnnotations: + resource.opentelemetry.io/service.name: quote + resource.opentelemetry.io/service.namespace: opentelemetry-demo env: - name: QUOTE_PORT value: "8080" @@ -556,8 +630,12 @@ components: value: "true" - name: OTEL_PHP_INTERNAL_METRICS_ENABLED value: "true" + envOverrides: + # Use the http/protobuf OTLP endpoint when the global config is the grpc endpoint - name: OTEL_EXPORTER_OTLP_ENDPOINT - value: http://$(OTEL_COLLECTOR_NAME):4318 + value: http://otel-demo-daemon-collector:4318 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: "http/protobuf" resources: limits: memory: 40Mi @@ -585,8 +663,9 @@ components: value: flagd - name: FLAGD_PORT value: "8013" - - name: OTEL_EXPORTER_OTLP_ENDPOINT - value: http://$(OTEL_COLLECTOR_NAME):4317 + podAnnotations: + resource.opentelemetry.io/service.name: recommendation + resource.opentelemetry.io/service.namespace: opentelemetry-demo resources: limits: memory: 500Mi # This is high to enable supporting the recommendationCache feature flag use case @@ -602,8 +681,9 @@ components: value: "8080" - name: QUOTE_ADDR value: http://quote:8080 - - name: OTEL_EXPORTER_OTLP_ENDPOINT - value: http://$(OTEL_COLLECTOR_NAME):4317 + podAnnotations: + resource.opentelemetry.io/service.name: shipping + resource.opentelemetry.io/service.namespace: opentelemetry-demo resources: limits: memory: 20Mi @@ -621,11 +701,14 @@ components: value: 8013 - name: ofrep value: 8016 + podAnnotations: + resource.opentelemetry.io/service.name: flagd + resource.opentelemetry.io/service.namespace: opentelemetry-demo env: - name: FLAGD_METRICS_EXPORTER value: otel - name: FLAGD_OTEL_COLLECTOR_URI - value: $(OTEL_COLLECTOR_NAME):4317 + value: otel-demo-daemon-collector:4317 - name: GOMEMLIMIT value: 60MiB resources: @@ -653,14 +736,17 @@ components: env: - 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 + envOverrides: + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4318 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: "http/protobuf" resources: limits: memory: 250Mi @@ -691,11 +777,12 @@ components: value: 9092 - name: controller value: 9093 + podAnnotations: + resource.opentelemetry.io/service.name: kafka + resource.opentelemetry.io/service.namespace: opentelemetry-demo env: - 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 @@ -704,6 +791,12 @@ components: value: CONTROLLER - name: KAFKA_CONTROLLER_QUORUM_VOTERS value: 1@kafka:9093 + envOverrides: + # Use the http/protobuf OTLP endpoint when the global config is the grpc endpoint + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: http://otel-demo-daemon-collector:4318 + - name: OTEL_EXPORTER_OTLP_PROTOCOL + value: "http/protobuf" resources: limits: memory: 600Mi @@ -726,6 +819,31 @@ components: value: otel - name: POSTGRES_DB value: otel + podAnnotations: + io.opentelemetry.discovery.metrics/enabled: 'true' + io.opentelemetry.discovery.metrics/scraper: postgresql + io.opentelemetry.discovery.metrics/config: | + username: root + password: otel + metrics: + postgresql.blks_hit: + enabled: true + postgresql.blks_read: + enabled: true + postgresql.tup_fetched: + enabled: true + postgresql.tup_returned: + enabled: true + postgresql.tup_inserted: + enabled: true + postgresql.tup_updated: + enabled: true + postgresql.tup_deleted: + enabled: true + postgresql.deadlocks: + enabled: true + tls: + insecure: true resources: limits: memory: 100Mi @@ -741,6 +859,12 @@ components: ports: - name: valkey-cart value: 6379 + podAnnotations: + io.opentelemetry.discovery.metrics/enabled: 'true' + io.opentelemetry.discovery.metrics/scraper: redis + io.opentelemetry.discovery.metrics/config: | + username: valkey + collection_interval: 10s resources: limits: memory: 20Mi @@ -749,15 +873,142 @@ components: runAsGroup: 1000 runAsNonRoot: true -opentelemetry-collector: +opentelemetry-kube-stack: enabled: true - image: - repository: "otel/opentelemetry-collector-contrib" - fullnameOverride: otel-collector - mode: deployment - presets: - kubernetesAttributes: + # https://github.com/open-telemetry/opentelemetry-helm-charts/tree/main/charts/opentelemetry-kube-stack + clusterName: otel-demo-stack # TODO set the K8s Cluster Name value + crds: + installOtel: true + installPrometheus: false # disable to prevent install of Prometheus components + collectors: + daemon: enabled: true + fullnameOverride: otel-demo-daemon + # disable scrapping using daemon_scrape_configs.yaml as it assumes the Prometheus Node Exporter and CAdvisor are setup + # https://github.com/open-telemetry/opentelemetry-helm-charts/tree/main/charts/opentelemetry-kube-stack#scrape_configs_file-details + scrape_configs_file: "" + presets: + logsCollection: + enabled: false # TODO disable when running on Docker Desktop + storeCheckpoints: false # TODO disable when running on Docker Desktop + hostMetrics: + enabled: false # TODO disable when running on Docker Desktop + kubeletMetrics: + enabled: true + kubernetesAttributes: + enabled: true + kubernetesEvents: + enabled: true + clusterMetrics: + enabled: true + config: + extensions: + health_check: # For K8s Liveness and Readiness Probes + endpoint: 0.0.0.0:13133 + k8s_observer: + observe_nodes: true + observe_services: true + observe_ingresses: true + receivers: + otlp: + protocols: + http: + # Since this collector needs to receive data from the web, enable cors for all origins + # `allowed_origins` can be refined for your deployment domain + cors: + allowed_origins: + - "http://*" + - "https://*" + receiver_creator/k8s: + watch_observers: [k8s_observer] + discovery: + enabled: true + exporters: + debug: {} + otlp/jaeger: + endpoint: "http://jaeger-collector:4317" + tls: + insecure: true + otlphttp/prometheus: + endpoint: "http://prometheus:9090/api/v1/otlp" + tls: + insecure: true + opensearch: + logs_index: otel-logs + logs_index_time_format: "yyyy-MM-dd" + http: + endpoint: "http://opensearch:9200" + tls: + insecure: true + processors: + transform/fix_nextjs_span_name: + error_mode: ignore + trace_statements: + - context: span + statements: + # could be removed when https://github.com/vercel/next.js/pull/64852 is fixed upstream + - replace_pattern(name, "\\?.*", "") + - replace_match(name, "GET /api/products/*", "GET /api/products/{productId}") + connectors: + spanmetrics: {} + service: + extensions: [health_check, k8s_observer] + pipelines: + traces: + processors: + - resourcedetection/env + - resource/hostname + - transform/fix_nextjs_span_name + - batch + exporters: + - otlp/jaeger + - spanmetrics + metrics: + receivers: + - otlp + - receiver_creator/k8s + - spanmetrics + processors: + - resourcedetection/env + - resource/hostname + - batch + exporters: + - otlphttp/prometheus + logs: + processors: + - resourcedetection/env + - resource/hostname + - batch + exporters: + - opensearch + telemetry: + metrics: + readers: + # TODO consider exporting to prometheus + - pull: + exporter: + prometheus: + host: '0.0.0.0' + port: 8888 + logs: + level: info + securityContext: # Run daemon collector as root for metrics & logs scrapping + runAsUser: 0 + runAsGroup: 0 + defaultCRConfig: + enabled: true + image: + repository: otel/opentelemetry-collector-contrib + tag: "0.134.1" + targetAllocator: + # See https://github.com/open-telemetry/opentelemetry-operator/tree/main/cmd/otel-allocator + enabled: false + opentelemetry-operator: + admissionWebhooks: + certManager: + enabled: false + autoGenerateCert: + enabled: true resources: limits: memory: 200Mi @@ -769,120 +1020,6 @@ opentelemetry-collector: podAnnotations: prometheus.io/scrape: "true" opentelemetry_community_demo: "true" - config: - receivers: - otlp: - protocols: - http: - # Since this collector needs to receive data from the web, enable cors for all origins - # `allowed_origins` can be refined for your deployment domain - cors: - allowed_origins: - - "http://*" - - "https://*" - httpcheck/frontend-proxy: - targets: - - endpoint: http://frontend-proxy:8080 - nginx: - endpoint: http://image-provider:8081/status - collection_interval: 10s - postgresql: - endpoint: "postgresql:5432" - username: "root" - password: "otel" - metrics: - postgresql.blks_hit: - enabled: true - postgresql.blks_read: - enabled: true - postgresql.tup_fetched: - enabled: true - postgresql.tup_returned: - enabled: true - postgresql.tup_inserted: - enabled: true - postgresql.tup_updated: - enabled: true - postgresql.tup_deleted: - enabled: true - postgresql.deadlocks: - enabled: true - tls: - insecure: true - redis: - endpoint: "valkey-cart:6379" - username: "valkey" - collection_interval: 10s - - exporters: - ## Create an exporter to Jaeger using the standard `otlp` export format - otlp: - endpoint: jaeger-collector:4317 - tls: - insecure: true - # Create an exporter to Prometheus (metrics) - otlphttp/prometheus: - endpoint: http://prometheus:9090/api/v1/otlp - tls: - insecure: true - opensearch: - logs_index: otel-logs - logs_index_time_format: "yyyy-MM-dd" - http: - endpoint: http://opensearch:9200 - tls: - insecure: true - - processors: - memory_limiter: - check_interval: 5s - limit_percentage: 80 - spike_limit_percentage: 25 - resourcedetection: - detectors: [env, system] - # This processor is used to help limit high cardinality on next.js span names - # When this PR is merged (and released) we can remove this transform processor - # https://github.com/vercel/next.js/pull/64852 - transform: - error_mode: ignore - trace_statements: - - context: span - statements: - # could be removed when https://github.com/vercel/next.js/pull/64852 is fixed upstream - - replace_pattern(name, "\\?.*", "") - - replace_match(name, "GET /api/products/*", "GET /api/products/{productId}") - resource: - attributes: - - key: service.instance.id - from_attribute: k8s.pod.uid - action: insert - - connectors: - spanmetrics: {} - - service: - pipelines: - traces: - processors: [memory_limiter, resourcedetection, resource, transform, batch] - exporters: [otlp, debug, spanmetrics] - metrics: - receivers: [httpcheck/frontend-proxy, nginx, otlp, postgresql, redis, spanmetrics] - processors: [memory_limiter, resourcedetection, resource, batch] - exporters: [otlphttp/prometheus, debug] - logs: - processors: [memory_limiter, resourcedetection, resource, batch] - exporters: [opensearch, debug] - telemetry: - metrics: - level: detailed - readers: - - periodic: - interval: 10000 - timeout: 5000 - exporter: - otlp: - protocol: http/protobuf - endpoint: otel-collector:4318 jaeger: enabled: true @@ -971,6 +1108,9 @@ prometheus: - postgresql.schema.name - postgresql.table.name - postgresql.index.name + # MongoDB + # See https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/receiver/mongodbreceiver/metadata.yaml + - database persistentVolume: enabled: false service: