# Polyglot runtime setup Telemio accepts OpenTelemetry data, so application teams should use the runtime's standard OpenTelemetry SDK, agent, or zero-code instrumentation instead of waiting for a Telemio-specific library. ## Runtime matrix - Node.js and TypeScript: OpenTelemetry Node auto-instrumentation. Add `@telemio/sdk` only when explicit business, agent, feature-flag, or experiment context is useful. - Python: OpenTelemetry Python SDK and supported auto-instrumentation. - Java and JVM languages: prefer the OpenTelemetry Java agent for zero-code coverage; add manual spans only for domain operations. - .NET and C#: use OpenTelemetry .NET auto-instrumentation or the application SDK. - Go: use OpenTelemetry Go; zero-code/eBPF instrumentation can be appropriate where supported. - PHP: use OpenTelemetry PHP and its auto-instrumentation ecosystem. - Ruby: use OpenTelemetry Ruby and supported automatic instrumentation. - Rust: use the OpenTelemetry Rust ecosystem or eBPF-based zero-code instrumentation where appropriate. - C and C++: use OpenTelemetry-compatible libraries or eBPF instrumentation where it is a better fit. - Erlang and Elixir: use the OpenTelemetry Erlang/Elixir libraries and framework integrations. - Swift/iOS and Android/Kotlin: follow the native-mobile guide and never embed a privileged server key. ## Common resource identity Across every runtime set a stable service name, deployment environment, and release/build identity. Preserve W3C trace context across HTTP, RPC, queues, and asynchronous boundaries. ## CLI Run `telemio detect` first. Use `telemio setup ` for a runtime-specific starting point and `telemio setup collector` when a gateway is appropriate.