.. _envoy_api_file_envoy/config/trace/v2/trace.proto: Tracing ======= Tracing :ref:`architecture overview <arch_overview_tracing>`. .. _envoy_api_msg_config.trace.v2.Tracing: config.trace.v2.Tracing ----------------------- `[config.trace.v2.Tracing proto] <https://github.com/envoyproxy/envoy/blob/master/api/envoy/config/trace/v2/trace.proto#L19>`_ The tracing configuration specifies global settings for the HTTP tracer used by Envoy. The configuration is defined by the :ref:`Bootstrap <envoy_api_msg_config.bootstrap.v2.Bootstrap>` :ref:`tracing <envoy_api_field_config.bootstrap.v2.Bootstrap.tracing>` field. Envoy may support other tracers in the future, but right now the HTTP tracer is the only one supported. .. code-block:: json { "http": "{...}" } .. _envoy_api_field_config.trace.v2.Tracing.http: http (:ref:`config.trace.v2.Tracing.Http <envoy_api_msg_config.trace.v2.Tracing.Http>`) Provides configuration for the HTTP tracer. .. _envoy_api_msg_config.trace.v2.Tracing.Http: config.trace.v2.Tracing.Http ---------------------------- `[config.trace.v2.Tracing.Http proto] <https://github.com/envoyproxy/envoy/blob/master/api/envoy/config/trace/v2/trace.proto#L20>`_ .. code-block:: json { "name": "...", "config": "{...}" } .. _envoy_api_field_config.trace.v2.Tracing.Http.name: name (`string <https://developers.google.com/protocol-buffers/docs/proto#scalar>`_, *REQUIRED*) The name of the HTTP trace driver to instantiate. The name must match a supported HTTP trace driver. *envoy.lightstep*, *envoy.zipkin*, and *envoy.dynamic.ot* are built-in trace drivers. .. _envoy_api_field_config.trace.v2.Tracing.Http.config: config (`Struct <https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct>`_) Trace driver specific configuration which depends on the driver being instantiated. See the :ref:`LightstepConfig <envoy_api_msg_config.trace.v2.LightstepConfig>`, :ref:`ZipkinConfig <envoy_api_msg_config.trace.v2.ZipkinConfig>`, and :ref:`DynamicOtConfig <envoy_api_msg_config.trace.v2.DynamicOtConfig>` trace drivers for examples. .. _envoy_api_msg_config.trace.v2.LightstepConfig: config.trace.v2.LightstepConfig ------------------------------- `[config.trace.v2.LightstepConfig proto] <https://github.com/envoyproxy/envoy/blob/master/api/envoy/config/trace/v2/trace.proto#L38>`_ Configuration for the LightStep tracer. .. code-block:: json { "collector_cluster": "...", "access_token_file": "..." } .. _envoy_api_field_config.trace.v2.LightstepConfig.collector_cluster: collector_cluster (`string <https://developers.google.com/protocol-buffers/docs/proto#scalar>`_, *REQUIRED*) The cluster manager cluster that hosts the LightStep collectors. .. _envoy_api_field_config.trace.v2.LightstepConfig.access_token_file: access_token_file (`string <https://developers.google.com/protocol-buffers/docs/proto#scalar>`_, *REQUIRED*) File containing the access token to the `LightStep <http://lightstep.com/>`_ API. .. _envoy_api_msg_config.trace.v2.ZipkinConfig: config.trace.v2.ZipkinConfig ---------------------------- `[config.trace.v2.ZipkinConfig proto] <https://github.com/envoyproxy/envoy/blob/master/api/envoy/config/trace/v2/trace.proto#L47>`_ .. code-block:: json { "collector_cluster": "...", "collector_endpoint": "...", "trace_id_128bit": "..." } .. _envoy_api_field_config.trace.v2.ZipkinConfig.collector_cluster: collector_cluster (`string <https://developers.google.com/protocol-buffers/docs/proto#scalar>`_, *REQUIRED*) The cluster manager cluster that hosts the Zipkin collectors. Note that the Zipkin cluster must be defined in the :ref:`Bootstrap static cluster resources <envoy_api_field_config.bootstrap.v2.Bootstrap.StaticResources.clusters>`. .. _envoy_api_field_config.trace.v2.ZipkinConfig.collector_endpoint: collector_endpoint (`string <https://developers.google.com/protocol-buffers/docs/proto#scalar>`_, *REQUIRED*) The API endpoint of the Zipkin service where the spans will be sent. When using a standard Zipkin installation, the API endpoint is typically /api/v1/spans, which is the default value. .. _envoy_api_field_config.trace.v2.ZipkinConfig.trace_id_128bit: trace_id_128bit (`bool <https://developers.google.com/protocol-buffers/docs/proto#scalar>`_) Determines whether a 128bit trace id will be used when creating a new trace instance. The default value is false, which will result in a 64 bit trace id being used. .. _envoy_api_msg_config.trace.v2.DynamicOtConfig: config.trace.v2.DynamicOtConfig ------------------------------- `[config.trace.v2.DynamicOtConfig proto] <https://github.com/envoyproxy/envoy/blob/master/api/envoy/config/trace/v2/trace.proto#L66>`_ DynamicOtConfig is used to dynamically load a tracer from a shared library that implements the `OpenTracing dynamic loading API <https://github.com/opentracing/opentracing-cpp>`_. .. code-block:: json { "library": "...", "config": "{...}" } .. _envoy_api_field_config.trace.v2.DynamicOtConfig.library: library (`string <https://developers.google.com/protocol-buffers/docs/proto#scalar>`_, *REQUIRED*) Dynamic library implementing the `OpenTracing API <https://github.com/opentracing/opentracing-cpp>`_. .. _envoy_api_field_config.trace.v2.DynamicOtConfig.config: config (`Struct <https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct>`_) The configuration to use when creating a tracer from the given dynamic library. .. _envoy_api_msg_config.trace.v2.TraceServiceConfig: config.trace.v2.TraceServiceConfig ---------------------------------- `[config.trace.v2.TraceServiceConfig proto] <https://github.com/envoyproxy/envoy/blob/master/api/envoy/config/trace/v2/trace.proto#L77>`_ Configuration structure. .. code-block:: json { "grpc_service": "{...}" } .. _envoy_api_field_config.trace.v2.TraceServiceConfig.grpc_service: grpc_service (:ref:`core.GrpcService <envoy_api_msg_core.GrpcService>`, *REQUIRED*) The upstream gRPC cluster that hosts the metrics service.