Enable Tracing using OpenTelemetry and Zipkin on EnRoute
EnRoute HowTos
Tracing in EnRoute
EnRoute can be configured to generate Traces in Zipkin and OpenTelemetry format. Tracing can be configured using GlobalConfig
GlobalConfig for Zipkin Tracing
Sending traces to zipkin collector is fairly straightforward. We specify the tracer_type as zipkin and provide the service name as <namespace.name>
Additional custom tags can also be sent to zipkin traces
Note that the example below assumes a zipkin collector is running in namespace istio-system with service name zipkin that accepts traces on port 9411
The GlobalConfig that enables tracing is defined of type globalconfig_tracing
apiVersion: enroute.saaras.io/v1
kind: GlobalConfig
metadata:
name: enroute-globalconfig-tracing
spec:
config: |
{
"tracing" : {
"tracer_type" : "zipkin",
"zipkin_config" : {
"service_name" : "istio-system.zipkin:9411",
"overall_sampling" : 100,
"max_path_length" : 256,
"protocol" : "h2c",
"custom_tags" : [ { "tag_name" : "authority_header", "request_header_name" : ":authority" } , { "tag_name" : "path_header", "request_header_name" : ":path" } ]
}
}
}
name: enroute-globalconfig-tracing
type: globalconfig_tracing
GlobalConfig for OpenTelemetry Tracing
EnRoute can also be configured to send traces to opentelemtry collector. The tracer_type is set to opentelemetry and service_name is specified in <namespace.name> format
apiVersion: enroute.saaras.io/v1
kind: GlobalConfig
metadata:
name: enroute-globalconfig-tracing
spec:
config: |
{
"tracing" : {
"tracer_type" : "opentelemetry",
"opentelemetry_config" : {
"service_name" : "default.simplest-collector:4317"
}
}
}
name: enroute-globalconfig-tracing
type: globalconfig_tracing
Traces with EnRoute
EnRoute shows up with the name enroute-ingress
