OpenTelemetry Traces Integration
Helm Installation
These instructions install the trace collector in daemonset mode.
For additional modes and more configuration options, see OpenTelemetry documentation for OpenTelemetry Collector Chart.
-
Get the IP for the Kloudfuse endpoint.
If the Kloudfuse stack installs with a DNS or VPC endpoint, use that address instead of the IP address.
kubectl get svc -n kfuse | grep kfuse-ingress-nginx-controller-internal kfuse-ingress-nginx-controller-internal LoadBalancer 10.53.250.80 10.53.232.3 80:32716/TCP,443:30767/TCP 125m -
Create a file
otel-values.yamlthat contains the following code.Use the IP address from the previous step. Note that
tls.insecureistrue, which is default. Replace the endpoint, and ensure that you usehttpsorhttpcorrectly, depending on Kloudfuse stack TLS protocol settings. See Configure HTTPS and TLS on Kloudfuse.Add any
tolerationsandaffinityas required by your deployment.
image:
repository: "otel/opentelemetry-collector-contrib"
command:
name: "otelcol-contrib"
config:
exporters:
logging:
verbosity: basic
otlphttp:
tls:
insecure: true # add only if you're using insecure communication
metrics_endpoint: https://<REPLACE KFUSE ADDRESS>/ingester/otlp/metrics
traces_endpoint: https://<REPLACE KFUSE ADDRESS>/ingester/otlp/traces
extensions:
health_check: {}
memory_ballast:
size_in_percentage: 40
processors:
batch:
timeout: 10s
memory_limiter:
check_interval: 5s
limit_percentage: 80
spike_limit_percentage: 25
resourcedetection:
detectors:
- env
- eks
- ec2
- gcp
- aks
- azure
override: false
timeout: 2s
receivers:
otlp:
protocols:
grpc:
endpoint: ${env:MY_POD_IP}:4317
http:
cors:
allowed_origins:
- http://*
- https://*
endpoint: 0.0.0.0:4318
service:
extensions:
- health_check
- memory_ballast
pipelines:
metrics:
exporters:
- logging
- otlphttp
processors:
- memory_limiter
- batch
- resourcedetection
receivers:
- otlp
traces:
exporters:
- otlphttp
processors:
- batch
- resourcedetection
receivers:
- otlp
telemetry:
metrics:
address: ${MY_POD_IP}:8888
mode: daemonset
nameOverride: otelcol
ports:
metrics:
enabled: true
otlp:
enabled: true
otlp-http:
enabled: true
presets:
kubernetesAttributes:
enabled: true
-
Add
otel repo, and update it.helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts helm repo update -
Install the
otelcollector.helm install my-opentelemetry-collector open-telemetry/opentelemetry-collector -f otel-values.yaml