Skip to content

OpenTelemetry in any language

Shield360 accepts standard OTLP over HTTP. Any language with an OpenTelemetry SDK can send to it without a Shield360 SDK: point the exporter at your Shield360 address and send the project’s API key as a bearer token.

Create a key in Settings → API keys, for the environment the app sends to. Store it where the app runs, as the SHIELD360_API_KEY environment variable or in a secret store. Don’t write it in code or in a config file that is committed.

These are the standard OpenTelemetry variables. Every SDK below reads them. Replace https://app.shield360.ai with your own address if you self-host. Setup → Other ways to connect (/setup?tab=guides) in the app shows these settings with your address filled in.

Terminal window
export OTEL_EXPORTER_OTLP_ENDPOINT=https://app.shield360.ai/api/ingest/otlp
export OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf
export OTEL_EXPORTER_OTLP_HEADERS="Authorization=Bearer%20${SHIELD360_API_KEY}"
export OTEL_SERVICE_NAME=orders-api
export OTEL_RESOURCE_ATTRIBUTES=deployment.environment=production

The SDKs append /v1/traces, /v1/logs and /v1/metrics themselves. The space after Bearer is written %20, as the OpenTelemetry spec asks for header values.

The OpenTelemetry Java agent instruments HTTP servers and clients, JDBC, Redis, Kafka, gRPC and logging with no code change:

Terminal window
curl -fsSLO https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/latest/download/opentelemetry-javaagent.jar
java -javaagent:opentelemetry-javaagent.jar -jar app.jar

shield360 run -- java -jar app.jar does the same: it downloads a pinned agent version and checks its SHA-256. See shield360 run.

Start the app and send it a request. Within a minute the app shows up under its OTEL_SERVICE_NAME in Telemetry → Services, and its spans show in Traces.

A Shield360 SDK adds AI-call cost, guardrails and runtime protection on top of plain OpenTelemetry. See all setup guides for which languages have one.