Skip to content
agentgateway has joined the Agentic AI FoundationLearn more

For the complete documentation index, see llms.txt. Markdown versions of all docs pages are available by appending .md to any docs URL.

OTel Collector

Page as Markdown

Configure agentgateway to send traces to a standalone OpenTelemetry Collector.

An OpenTelemetry Collector is a vendor-neutral component that receives, processes, and exports telemetry data to one or more backends, such as Jaeger, Tempo, or Datadog. The following steps show you how to install a standalone OTel Collector in your cluster and configure agentgateway to send traces to it.

Tip

If you already have the OTel stack installed, an OTel Collector is already running in the telemetry namespace. You do not need to install another one.

Before you begin

  1. Set up an agentgateway proxy.
  2. Install the httpbin sample app.

Install the OTel Collector

  1. Add the OpenTelemetry Helm repository and install the collector.

    helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts
    helm repo update
    helm install opentelemetry-collector open-telemetry/opentelemetry-collector \
      --namespace tracing \
      --create-namespace \
      --set mode=deployment \
      --set image.repository=otel/opentelemetry-collector-contrib \
      --set config.exporters.debug.verbosity=detailed
  2. Verify the collector pod is running.

    kubectl get pods -n tracing

    Example output:

    NAME                                          READY   STATUS    RESTARTS   AGE
    opentelemetry-collector-6b9d7c5d65-q2r9k     1/1     Running   0          34s
    

Configure tracing

Create an AgentgatewayPolicy that points the agentgateway proxy at the collector.

kubectl apply -f- <<EOF
apiVersion: agentgateway.dev/v1alpha1
kind: AgentgatewayPolicy
metadata:
  name: tracing
  namespace: agentgateway-system
spec:
  targetRefs:
    - kind: Gateway
      name: agentgateway-proxy
      group: gateway.networking.k8s.io
  frontend:
    tracing:
      backendRef:
        name: opentelemetry-collector
        namespace: tracing
        port: 4317
      protocol: GRPC
      randomSampling: "true"
EOF

Verify traces

  1. Send a request to the httpbin app.

    curl -vi -X POST http://$INGRESS_GW_ADDRESS:80/post \
     -H "host: www.example.com"
  2. Check the collector logs for the trace.

    kubectl logs -n tracing deploy/opentelemetry-collector | grep -A 5 "agentgateway"

Cleanup

You can remove the resources that you created in this guide.
  1. Delete the AgentgatewayPolicy resource.

    kubectl delete AgentgatewayPolicy tracing -n agentgateway-system
  2. Uninstall the OTel Collector.

    helm uninstall opentelemetry-collector -n tracing
    kubectl delete namespace tracing
Was this page helpful?
Agentgateway assistant

Ask me anything about agentgateway configuration, features, or usage.

Note: AI-generated content might contain errors; please verify and test all returned information.

Tip: one topic per conversation gives the best results. Use the + button in the chat header to start a new conversation.

Switching topics? Starting a new conversation improves accuracy.
↑↓ navigate select esc dismiss

What could be improved?

Your feedback helps us improve assistant answers and identify docs gaps we should fix.

Need more help? Join us on Discord: https://discord.gg/y9efgEmppm

Want to use your own agent? Add the Solo MCP server to query our docs directly. Get started here: https://search.solo.io/.