.. _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.