Metrics and Events

This section contains a list of the different metrics and events for the different instrumentations. Please note that the units described here in the meta data is just a textual representation of the units that the metrics will be collected and reported in regardless of any changes to this configuration. That means that for example changing a nanoseconds to milliseconds will not change the unit that the metric is collected and reported in. Changing the unit that for example times are reported in is something that has to be done in the plugin or reporter configuration.

Note: Any metric or event can be disabled by setting the enabled configuration to false as described here. It is also possible to rate limit events to manage the ammount of data being reported.

Akka

Actor
cinnamon.akka.meta {
  descriptor {
    actor {
      running-actors {
        key = "running-actors"
        unit-type = "custom"
        unit-suffix = "actor"
      }

      mailbox-size {
        key = "mailbox-size"
        unit-type = "custom"
        unit-suffix = "msg"
      }

      stash-size {
        key = "stash-size"
        unit-type = "custom"
        unit-suffix = "msg"
      }

      mailbox-time {
        key = "mailbox-time"
        unit-type = "nanoseconds"
      }

      processed-messages {
        key = "processed-messages"
        unit-type = "custom"
        unit-suffix = "msg"
      }

      sent-messages {
        key = "sent-messages"
        unit-type = "custom"
        unit-suffix = "msg"
      }

      processing-time {
        key = "processing-time"
        unit-type = "nanoseconds"
      }

      dropped-messages {
        key = "dropped-messages"
        unit-type = "custom"
        unit-suffix = "msg"
      }
    }
  }
}
Actor Events
cinnamon.akka.meta {
  descriptor {
    actor {
      mailbox-size-limit {
        key = "mailbox-size-limit"
      }

      stash-size-limit {
        key = "stash-size-limit"
      }

      mailbox-time-limit {
        key = "mailbox-time-limit"
      }

      processing-time-limit {
        key = "processing-time-limit"
      }

      log-error {
        key = "log-error"
      }

      log-warning {
        key = "log-warning"
      }

      unhandled-message {
        key = "unhandled-message"
      }

      dead-letter {
        key = "dead-letter"
      }

      actor-failure {
        key = "actor-failure"
      }
    }
  }
}
Dispatcher
cinnamon.akka.meta {
  descriptor {
    dispatcher {
      queue-size {
        key = "queue-size"
        unit-type = "custom"
        unit-suffix = "task"
      }

      queue-time {
        key = "queue-time"
        unit-type = "nanoseconds"
      }

      processing {
        key = "processing"
        unit-type = "custom"
        unit-suffix = "task"
      }

      processing-time {
        key = "processing-time"
        unit-type = "nanoseconds"
      }
    }
  }
}
Router
cinnamon.akka.meta {
  descriptor {
    router {
      router-routed-messages {
        key = "router-routed-messages"
        unit-type = "custom"
        unit-suffix = "msg"
      }

      router-processing-time {
        key = "router-processing-time"
        unit-type = "nanoseconds"
      }
    }
  }
}

Akka Remoting

Actor Remoting
cinnamon.akka.meta {
  descriptor {
    actor {
      remote-sent-messages {
        key = "remote-sent-messages"
        unit-type = "custom"
        unit-suffix = "msg"
      }

      remote-sent-message-size {
        key = "remote-sent-message-size"
        unit-type = "custom"
        unit-suffix = "byte"
      }

      remote-serialization-time {
        key = "remote-serialization-time"
        unit-type = "nanoseconds"
      }

      remote-received-messages {
        key = "remote-received-messages"
        unit-type = "custom"
        unit-suffix = "msg"
      }

      remote-received-message-size {
        key = "remote-received-message-size"
        unit-type = "custom"
        unit-suffix = "byte"
      }

      remote-deserialization-time {
        key = "remote-deserialization-time"
        unit-type = "nanoseconds"
      }
    }
  }
}
Remoting
cinnamon.akka.meta {
  descriptor {
    node {
      node-quarantines {
        key = "node-quarantines"
        unit-type = "custom"
        unit-suffix = "event"
      }

      phi-accrual-value {
        key = "phi-accrual-value"
        unit-type = "none"
      }

      phi-accrual-threshold-value {
        key = "phi-accrual-threshold-value"
        unit-type = "none"
      }

      reachable-nodes {
        key = "reachable-nodes"
        unit-type = "custom"
        unit-suffix = "node"
      }

      unreachable-nodes {
        key = "unreachable-nodes"
        unit-type = "custom"
        unit-suffix = "node"
      }
    }
  }
}
Remoting Events
cinnamon.akka.meta {
  descriptor {
    node {
      node-quarantined-event {
        key = "node-quarantined-event"
      }
    }
  }
}

Akka Persistence

Actor Persistence
cinnamon.akka.meta {
  descriptor {
    actor {
      persistence-recovery-time {
        key = "persistence-recovery-time"
        unit-type = "nanoseconds"
      }

      persistence-recovery-failure-time {
        key = "persistence-recovery-failure-time"
        unit-type = "nanoseconds"
      }
    }
  }
}
Actor Persistence Events
cinnamon.akka.meta {
  descriptor {
    actor {
      persistence-recovery-failed {
        key = "persistence-recovery-failed"
      }

      persistence-persist-failed {
        key = "persistence-persist-failed"
      }

      persistence-persist-rejected {
        key = "persistence-persist-rejected"
      }
    }
  }
}
Persistence
cinnamon.akka.meta {
  descriptor {
    persistence {
      recovery-permitter-max-permits-value {
        key = "recovery-permitter-max-permits-value"
        unit-type = "custom"
        unit-suffix = "permit"
      }

      recovery-permitter-used-permits-value {
        key = "recovery-permitter-used-permits-value"
        unit-type = "custom"
        unit-suffix = "permit"
      }

      recovery-permitter-pending-actors-value {
        key = "recovery-permitter-pending-actors-value"
        unit-type = "custom"
        unit-suffix = "actor"
      }
    }
  }
}

Akka Cluster

Cluster Events
cinnamon.akka.meta {
  descriptor {
    node {
      cluster-domain-event {
        key = "cluster-domain-event"
      }

      cluster-member-event {
        key = "cluster-member-event"
      }

      split-brain-resolver-event {
        key = "split-brain-resolver-event"
      }

      cluster-singleton-event {
        key = "cluster-singleton-event"
      }

      cluster-current-event {
        key = "cluster-current-event"
      }

      node-unable-to-join-event {
        key = "node-unable-to-join-event"
      }
    }
  }
}
Shard
cinnamon.akka.meta {
  descriptor {
    shard {
      shard-region-messages-delivered {
        key = "shard-region-messages-delivered"
        unit-type = "custom"
        unit-suffix = "msg"
      }
      shard-region-count-value {
        key = "shard-region-count-value"
        unit-type = "custom"
      }
      shard-count-value {
        key = "shard-count-value"
        unit-type = "custom"
      }
      shard-entity-count-value {
        key = "shard-entity-count-value"
        unit-type = "custom"
      }
    }
  }
}
Shard Events
cinnamon.akka.meta {
  descriptor {
    shard {
      shard-region-event {
        key = "shard-region-event"
      }

      shard-region-proxy-event {
        key = "shard-region-proxy-event"
      }
    }
  }
}

Akka Streams

Stream Metrics
cinnamon.akka.stream.meta {
  descriptor {
    stream {
      running-streams {
        key = "running-streams"
        unit-type = "custom"
        unit-suffix = "stream"
      }

      running-operators {
        key = "running-operators"
        unit-type = "custom"
        unit-suffix = "operator"
      }

      throughput {
        key = "throughput"
        unit-type = "custom"
        unit-suffix = "element"
      }

      flow-time {
        key = "flow-time"
        unit-type = "nanoseconds"
      }

      flow-active-time {
        key = "flow-active-time"
        unit-type = "nanoseconds"
      }

      flow-efficiency {
        key = "flow-efficiency"
        unit-type = "custom"
        unit-suffix = "percent"
      }
    }

    operator {
      running-operators {
        key = "running-operators"
        unit-type = "custom"
        unit-suffix = "operator"
      }

      throughput {
        key = "throughput"
        unit-type = "custom"
        unit-suffix = "element"
      }

      processing-time {
        key = "processing-time"
        unit-type = "nanoseconds"
      }

      latency {
        key = "latency"
        unit-type = "nanoseconds"
      }

      demand {
        key = "demand"
        unit-type = "custom"
        unit-suffix = "element"
      }

      demand-processing-time {
        key = "demand-processing-time"
        unit-type = "nanoseconds"
      }

      demand-latency {
        key = "demand-latency"
        unit-type = "nanoseconds"
      }

      flow-time {
        key = "flow-time"
        unit-type = "nanoseconds"
      }
    }

    connection {
      throughput {
        key = "throughput"
        unit-type = "custom"
        unit-suffix = "element"
      }

      processing-time {
        key = "processing-time"
        unit-type = "nanoseconds"
      }

      latency {
        key = "latency"
        unit-type = "nanoseconds"
      }

      demand {
        key = "demand"
        unit-type = "custom"
        unit-suffix = "element"
      }

      demand-processing-time {
        key = "demand-processing-time"
        unit-type = "nanoseconds"
      }

      demand-latency {
        key = "demand-latency"
        unit-type = "nanoseconds"
      }
    }
  }
}
Stream Events
cinnamon.akka.stream.meta {
  descriptor {
    operator {
      operator-failure {
        key = "operator-failure"
      }
    }
  }
}

Akka Http

Server Metrics
cinnamon.akka.http.meta {
  descriptor {
    server {
      connections {
        key = "connections"
        unit-type = "custom"
        unit-suffix = "connection"
      }

      requests {
        key = "requests"
        unit-type = "custom"
        unit-suffix = "request"
      }

      responses {
        key = "responses"
        unit-type = "custom"
        unit-suffix = "response"
      }

      response-time {
        key = "response-time"
        unit-type = "nanoseconds"
      }
    }

    endpoint {
      responses {
        key = "endpoint-responses"
        unit-type = "custom"
        unit-suffix = "response"
      }

      response-time = {
        key = "endpoint-response-time"
        unit-type = "nanoseconds"
      }
    }
  }
}
Client Metrics
cinnamon.akka.http.meta {
  descriptor {
    client-pool {
      connections {
        key = "connections"
        unit-type = "custom"
        unit-suffix = "connection"
      }
    }

    client {
      requests {
        key = "http-client-requests"
        unit-type = "custom"
      }

      service-response-time {
        key = "http-client-service-response-time"
        unit-type = "nanoseconds"
      }
    }
  }
}

Play

Server Metrics
cinnamon.akka.http.meta {
  descriptor {
    server {
      connections {
        key = "connections"
        unit-type = "custom"
        unit-suffix = "connection"
      }

      requests {
        key = "requests"
        unit-type = "custom"
        unit-suffix = "request"
      }

      responses {
        key = "responses"
        unit-type = "custom"
        unit-suffix = "response"
      }

      response-time {
        key = "response-time"
        unit-type = "nanoseconds"
      }
    }

    endpoint {
      responses {
        key = "endpoint-responses"
        unit-type = "custom"
        unit-suffix = "response"
      }

      response-time = {
        key = "endpoint-response-time"
        unit-type = "nanoseconds"
      }
    }
  }
}
Client Metrics
cinnamon.play.meta {
  descriptor {
    client {
      requests {
        key = "play-client-requests"
        unit-type = "custom"
        unit-suffix = "request"
      }

      service-response-time {
        key = "play-client-service-response-time"
        unit-type = "nanoseconds"
      }
    }
  }
}

Lagom

Server Metrics
cinnamon.akka.http.meta {
  descriptor {
    server {
      connections {
        key = "connections"
        unit-type = "custom"
        unit-suffix = "connection"
      }

      requests {
        key = "requests"
        unit-type = "custom"
        unit-suffix = "request"
      }

      responses {
        key = "responses"
        unit-type = "custom"
        unit-suffix = "response"
      }

      response-time {
        key = "response-time"
        unit-type = "nanoseconds"
      }
    }

    endpoint {
      responses {
        key = "endpoint-responses"
        unit-type = "custom"
        unit-suffix = "response"
      }

      response-time = {
        key = "endpoint-response-time"
        unit-type = "nanoseconds"
      }
    }
  }
}
Client Metrics
cinnamon.play.meta {
  descriptor {
    client {
      requests {
        key = "play-client-requests"
        unit-type = "custom"
        unit-suffix = "request"
      }

      service-response-time {
        key = "play-client-service-response-time"
        unit-type = "nanoseconds"
      }
    }
  }
}
Circuit Breaker Metrics
cinnamon.lagom.meta {
  descriptor {
    circuit-breaker {
      state {
        key = "state"
        unit-type = "none"
      }

      throughput {
        key = "throughput"
        unit-type = "custom"
        unit-suffix = "request"
      }

      success {
        key = "success"
        unit-type = "custom"
        unit-suffix = "request"
      }

      failure {
        key = "failure"
        unit-type = "custom"
        unit-suffix = "request"
      }

      latency {
        key = "latency"
        unit-type = "nanoseconds"
      }
    }
  }
}
Circuit Breaker Events
cinnamon.lagom.meta {
  descriptor {
    circuit-breaker {
      state-change {
        key = "circuit-breaker-state-change"
      }
    }
  }
}

Core

Stopwatch
cinnamon.akka.meta {
  descriptor {
    stopwatch {
      stopwatch-time {
        key = "stopwatch-time"
        unit-type = "nanoseconds"
      }

      stopwatch-rate {
        key = "stopwatch-rate"
        unit-type = "custom"
        unit-suffix = "event"
      }

      stopwatch-active-time {
        key = "stopwatch-active-time"
        unit-type = "nanoseconds"
      }
    }
  }
}
Executor
cinnamon.core.meta {
  descriptor {
    executor {
      parallelism {
        key = "parallelism"
        unit-type = "none"
      }

      pool-size {
        key = "pool-size"
        unit-type = "custom"
        unit-suffix = "thread"
      }

      core-pool-size {
        key = "core-pool-size"
        unit-type = "custom"
        unit-suffix = "thread"
      }

      max-pool-size {
        key = "max-pool-size"
        unit-type = "custom"
        unit-suffix = "thread"
      }

      active-thread-count {
        key = "active-threads"
        unit-type = "custom"
        unit-suffix = "thread"
      }

      running-thread-count {
        key = "running-threads"
        unit-type = "custom"
        unit-suffix = "thread"
      }

      queued-task-count {
        key = "queued-tasks"
        unit-type = "custom"
        unit-suffix = "task"
      }

      processed-task-count {
        key = "processed-tasks"
        unit-type = "custom"
        unit-suffix = "task"
      }
    }
  }
}