Offloading analytics data to Langfuse exporter
Configure the DataPower Interact Gateway Collector to export LLM observability telemetry to Langfuse for AI model monitoring and analysis.
Before you begin
Make sure
- you have a Langfuse account (cloud or self-hosted).
- you have a valid Langfuse secret key.
- you have the Langfuse API endpoint URL.
About this task
The Langfuse exporter sends traces and logs from the OpenTelemetry Collector to Langfuse for monitoring and analyzing LLM (Large Language Model) applications.
Procedure
-
Identify the namespace where the collector is deployed.
kubectl get nsSample output:
NAME STATUS AGE default Active 5h6m fyre-ci-293280 Active 5h2mNote: Lists all namespaces and their deployments, including the DataPower Interact Gateway. In this example,fyre-ci-293280is the namespace in which the DataPower Interact Gateway is deployed. -
Create a Kubernetes secret containing the Langfuse configuration.
kubectl create secret generic langfuse-credentials \ --from-literal=LANGFUSE_ENDPOINT='https://cloud.langfuse.com/api/public/ingestion' \ --from-literal=LANGFUSE_SECRET_KEY='sk-lf-...' \ -n <namespace>Important: Replacehttps://cloud.langfuse.com/api/public/ingestionandsk-lf-...with your actual Langfuse endpoint and secret key.Output:
secret/langfuse-credentials created -
Verify that the secret was created successfully.
kubectl get secret langfuse-credentials -n <namespace> -
Identify the collector deployment.
kubectl get deployment -n <namespace> | grep collectorSample output:
idig-nanogw-nanogw-analytics-collector 1/1 1 1 5h -
Edit the collector deployment to inject the secret as environment variables.
kubectl edit deployment <deployment_name> -n <namespace>-
Locate the
containerssection for theanalytics-collectorcontainer. -
Add the following
envFromsection under the container definition:envFrom: - secretRef: name: langfuse-credentials -
Save and exit the editor.
Sample deployment configuration:
apiVersion: apps/v1 kind: Deployment metadata: name: idig-nanogw-nanogw-analytics-collector namespace: <namespace> spec: replicas: 1 selector: matchLabels: app.kubernetes.io/name: nanogw-analytics-collector template: metadata: labels: app.kubernetes.io/name: nanogw-analytics-collector spec: containers: - name: analytics-collector image: your-image:tag envFrom: - secretRef: name: langfuse-credentials
-
Locate the
-
Identify the collector ConfigMap.
kubectl get configmap -n <namespace> | grep collectorSample output:
idig-nanogw-collector-config 1 5h11m -
Edit the collector ConfigMap to add the Langfuse exporter configuration.
kubectl edit configmap <configmap_name> -n <namespace>-
Add the following exporter configuration under the
exporterssection:exporters: otlphttp/langfuse: endpoint: '${LANGFUSE_ENDPOINT}' headers: Authorization: 'Bearer ${LANGFUSE_SECRET_KEY}' tls: insecure: false -
Update the service pipelines to include the Langfuse exporter:
service: pipelines: traces/langfuse: receivers: [otlp] processors: [batch/apic] exporters: [otlphttp/langfuse] logs/langfuse: receivers: [otlp] processors: [batch/apic] exporters: [otlphttp/langfuse] -
Save the ConfigMap.
Sample ConfigMap structure:
apiVersion: v1 kind: ConfigMap metadata: name: idig-nanogw-collector-config namespace: <namespace> data: config.yaml: | receivers: ... processors: batch/apic: ... exporters: otlphttp/langfuse: endpoint: '${LANGFUSE_ENDPOINT}' headers: Authorization: 'Bearer ${LANGFUSE_SECRET_KEY}' tls: insecure: false service: pipelines: traces/langfuse: receivers: [otlp] processors: [batch/apic] exporters: [otlphttp/langfuse] logs/langfuse: receivers: [otlp] processors: [batch/apic] exporters: [otlphttp/langfuse]
-
Add the following exporter configuration under the
-
Restart the collector deployment to apply the changes.
kubectl rollout restart deployment <deployment_name> -n <namespace>Output:
deployment.apps/idig-nanogw-nanogw-analytics-collector restarted -
Verify that the collector pods restart successfully.
kubectl get pods -n <namespace> | grep collectorSample output:
idig-nanogw-nanogw-analytics-collector-7d4f8ccf45-bk468 1/1 Running 0 30sThe OpenTelemetry Collector is now configured to export telemetry data to Langfuse. Traces and logs will be sent to your Langfuse instance for LLM observability and analysis.