Jaeger™ (preview)¶
For Elastisys Managed Services Customers
You can order Managed Jaeger™ by filing a service ticket.
This is a preview feature. For more information, please read ToS 9.1 Preview Features.
Deprecation notice: Jaeger Agent
jaeger-agent
is deprecated in upstream and will get removed in the future. The new method is using OTEL(OpenTelemetry) SDK
and send traces directly to Jaeger collector using OTLP
protocol.
This page will help you succeed in connecting your application to Jaeger tracing which meets your security and compliance requirements.
Getting Access¶
Your administrator will set up the authentication reverse proxy inside Compliant Kubernetes, which will give you access to Jaeger UI.
Prepare your application¶
Using OTEL SDK¶
You need to use the OTEL(OpenTelemetry) SDK
client library and send the traces directly to the Jaeger collector using OTLP protocol. The application need to send the traces to the Jaeger collector endpoint, which in this case is http://jaeger-operator-jaeger-collector.jaeger-system.svc.cluster.local:4318/v1/traces
.
Here is an example using python:
from opentelemetry import trace
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import BatchSpanProcessor
from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
collector_endpoint = "http://jaeger-operator-jaeger-collector.jaeger-system.svc.cluster.local:4318/v1/traces"
otlp_exporter = OTLPSpanExporter(endpoint=collector_endpoint)
trace.set_tracer_provider(TracerProvider())
trace.get_tracer_provider().add_span_processor(
BatchSpanProcessor(otlp_exporter)
)
tracer = trace.get_tracer(__name__)
with tracer.start_as_current_span("foo"):
print("Hello world!")
Next you need to assign the environment variable OTEL_SERVICE_NAME
in your Deployment, which will become its name in collected traces.
apiVersion: apps/v1
kind: Deployment
spec:
selector:
...
template:
...
spec:
containers:
- name: my-app
image: my-app:my-version
env:
- name: OTEL_SERVICE_NAME
value: <service-name>
Using Jaeger-agent (deprecated)¶
Warning
This method is deprecated and will be removed in the future.
The Jaeger agent is exposed as a DaemonSet. Your application needs to be told where the agent is located by setting the environment variable JAEGER_AGENT_HOST
to the value of the Kubernetes node’s IP:
apiVersion: apps/v1
kind: Deployment
spec:
selector:
...
template:
...
spec:
containers:
- name: my-app
image: acme/my-app:my-version
env:
- name: JAEGER_AGENT_HOST
valueFrom:
fieldRef:
fieldPath: status.hostIP
Follow the Go-Live Checklist¶
You should be all set. Before going into production, don't forget to go through the go-live checklist.
CK8S Jaeger Release Notes¶
Check out the release notes for the Jaeger setup that runs in Compliant Kubernetes environments!