To support Agent, Library should have “agent exporters”, similar to the existing exporters to other backends. There should be 3 separate agent exporters for tracing/stats/metrics respectively. Agent exporters will be responsible for sending spans/stats/metrics and (possibly) receiving configuration updates from Agent.
Communication between Library and Agent should user a bi-directional gRPC stream. Library should initiate the connection, since there’s only one dedicated port for Agent, while there could be multiple processes with Library running.
common
package contains the common messages shared between different services, such as Node
, Service
and Library
identifiers.trace
package contains the Trace Service protos.stats
package contains the Stats Service protos.metrics
package contains the Metrics Service protos.