Interface ReporterMetrics

  • All Known Implementing Classes:
    InMemoryReporterMetrics

    public interface ReporterMetrics
    Instrumented applications report spans over a transport such as Kafka to Zipkin Collectors.

    Callbacks on this type are invoked by zipkin reporters to improve the visibility of the system. A typical implementation will report metrics to a telemetry system for analysis and reporting.

    Spans Reported vs Queryable Spans

    A span in the context of reporting is <= span in the context of query. Instrumentation should report a span only once except, but certain types of spans cross the network. For example, RPC spans are reported at the client and the server separately.

    Key Relationships

    The following relationships can be used to consider health of the tracing system.

     
    • Pending spans. Alert when this increases over time as it could lead to dropped spans.
    • Dropped spans = Alert when this increases as it could indicate a queue backup.
    • Successful Messages = Accepted messages - Dropped messages. Alert when this is more than amount of messages received from collectors.
    • Method Detail

      • incrementMessages

        void incrementMessages()
        Increments count of message attempts, which contain 1 or more spans. Ex POST requests or Kafka messages sent.
      • incrementMessagesDropped

        void incrementMessagesDropped​(Throwable cause)
        Increments count of messages that could not be sent. Ex host unavailable, or peer disconnect.
      • incrementSpans

        void incrementSpans​(int quantity)
        Increments the count of spans reported. When AsyncReporter is used, reported spans will usually be a larger number than messages.
      • incrementSpanBytes

        void incrementSpanBytes​(int quantity)
        Increments the number of encoded span bytes reported.
      • incrementMessageBytes

        void incrementMessageBytes​(int quantity)
        Increments the number of bytes containing encoded spans in a message.

        This is a function of span bytes per message and overhead

        See Also:
        Sender.messageSizeInBytes(java.util.List<byte[]>)
      • incrementSpansDropped

        void incrementSpansDropped​(int quantity)
        Increments the count of spans dropped for any reason. For example, failure queueing or sending.
      • updateQueuedSpans

        void updateQueuedSpans​(int update)
        Updates the count of spans pending, following a flush activity.
      • updateQueuedBytes

        void updateQueuedBytes​(int update)
        Updates the count of encoded span bytes pending, following a flush activity.