Loading

NATS JetStream metricset

This is the JetStream metricset of the NATS module. It supports gathering basic stats about a JetStream server as well as specific details about streams and consumers.

The data is pulled from the /jsz API of a JetStream server.

You can enable each of the specific data points via configuration for the jetstream metricset. For example:

jetstream:
  stats:
    # Enables basic stats collection about the JetStream server
    enabled: true
  account:
    # Enables data collection about accounts on the server
    enabled: true
  stream:
    # Enables data collection about streams on the server
    enabled: true
  consumer:
    # Enables data collection about consumers on the server
    enabled: true

You can also filter account, stream, and consumer metrics by name:

jetstream:
  account:
    names:
      - default
      - another account
  stream:
    names:
      - my-stream-1
      - my-stream-2
  consumer:
    names:
      - my-stream-1-consumer-1
      - my-stream-1-consumer-2

Since this data is hierarchical, these filters are cumulative and apply even if the particular data set is not enabled but filters are configured. When there are no names configured, all information about all accounts, streams, and consumers will be reported.

This section contains some example events generated by the JetStream metricset.

For a description of each field in the metricset, see the exported fields section.

The stats option will produce events that include basic, high-level stats about your JetStream server.

Example:

{
    "@timestamp": "2017-10-12T08:05:34.853Z",
    "event": {
        "dataset": "nats.jetstream",
        "duration": 115000,
        "module": "nats"
    },
    "metricset": {
        "name": "jetstream",
        "period": 10000
    },
    "nats": {
        "jetstream": {
            "category": "stats",
            "stats": {
                "accounts": 1,
                "bytes": 17395590,
                "config": {
                    "max_memory": 12427170816,
                    "max_storage": 752333079552,
                    "store_dir": "/tmp/nats/jetstream",
                    "sync_interval": 120000000000
                },
                "consumers": 0,
                "memory": 0,
                "messages": 102327,
                "reserved_memory": 0,
                "reserved_storage": 1073741824,
                "storage": 17395590,
                "streams": 1
            }
        },
        "server": {
            "id": "NBUWPVHICBBDHQZ3OPY2AEAVJVHDOQEVIQND3RLRUMCIZZEKHXHX5GDW",
            "time": "2025-03-16T15:24:47.293Z"
        }
    },
    "service": {
        "address": "localhost:60829",
        "type": "nats"
    }
}

The account option will produce events containing information about accounts on the JetStream server.

Example:

{
    "event": {
        "dataset": "nats.jetstream",
        "duration": 115000,
        "module": "nats"
    },
    "metricset": {
        "name": "jetstream",
        "period": 10000
    },
    "nats": {
        "jetstream": {
            "account": {
                "accounts": 0,
                "api": {
                    "errors": 22596,
                    "total": 1436563
                },
                "high_availability_assets": 0,
                "id": "default",
                "memory": 2408,
                "name": "default",
                "reserved_memory": 8589934592,
                "reserved_storage": 429496729600,
                "storage": 1474866157
            },
            "category": "account"
        },
        "server": {
            "id": "NAGGEW65XCMGPSNNQQF6FGKDGQCCXZFMHDI264FXBLT5MURRVDAAKII3",
            "time": "2025-03-15T01:22:56.617Z"
        }
    },
    "service": {
        "address": "127.0.0.1:55555",
        "type": "nats"
    }
}

The stream option will produce events containing information about streams on the JetStream server.

Example:

{
    "event": {
        "dataset": "nats.jetstream",
        "duration": 115000,
        "module": "nats"
    },
    "metricset": {
        "name": "jetstream",
        "period": 10000
    },
    "nats": {
        "jetstream": {
            "category": "stream",
            "stream": {
                "account": {
                    "id": "default",
                    "name": "default"
                },
                "cluster": {
                    "leader": "us-south-nats-demo"
                },
                "config": {
                    "description": "",
                    "max_age": 0,
                    "max_bytes": -1,
                    "max_consumers": -1,
                    "max_msg_size": -1,
                    "max_msgs": -1,
                    "max_msgs_per_subject": 10,
                    "num_replicas": 1,
                    "retention": "limits",
                    "storage": "file",
                    "subjects": [
                        "$KV.credibil-wallet-8f580625-2ccf-494e-a5e7-44f9335c801f.\u003e"
                    ]
                },
                "created": "2024-07-17T23:54:45.971Z",
                "name": "KV_credibil-wallet-8f580625-2ccf-494e-a5e7-44f9335c801f",
                "state": {
                    "bytes": 3353,
                    "consumer_count": 0,
                    "first_seq": 1,
                    "first_ts": "2024-07-17T23:54:46.152Z",
                    "last_seq": 2,
                    "last_ts": "2024-07-17T23:54:46.870Z",
                    "messages": 2,
                    "num_deleted": 0,
                    "num_subjects": 1
                }
            }
        },
        "server": {
            "id": "NAGGEW65XCMGPSNNQQF6FGKDGQCCXZFMHDI264FXBLT5MURRVDAAKII3",
            "time": "2025-03-15T11:54:13.510Z"
        }
    },
    "service": {
        "address": "127.0.0.1:55555",
        "type": "nats"
    }
}

The consumer option will produce events containing information about consumers on the JetStream server.

Example:

{
    "event": {
        "dataset": "nats.jetstream",
        "duration": 115000,
        "module": "nats"
    },
    "metricset": {
        "name": "jetstream",
        "period": 10000
    },
    "nats": {
        "jetstream": {
            "category": "consumer",
            "consumer": {
                "account": {
                    "id": "default",
                    "name": "default"
                },
                "ack_floor": {
                    "consumer_seq": 0,
                    "last_active": "0001-01-01T00:00:00.000Z",
                    "stream_seq": 0
                },
                "cluster": {
                    "leader": "us-south-nats-demo"
                },
                "config": {
                    "ack_policy": "explicit",
                    "ack_wait": 300000,
                    "deliver_policy": "all",
                    "durable_name": "cyco-activity-dani-cve_data",
                    "filter_subject": "cve_data",
                    "max_ack_pending": 1000,
                    "max_deliver": -1,
                    "max_waiting": 512,
                    "name": "cyco-activity-dani-cve_data",
                    "num_replicas": 0,
                    "replay_policy": "original"
                },
                "created": "2025-03-10T12:57:13.976Z",
                "delivered": {
                    "consumer_seq": 0,
                    "last_active": "0001-01-01T00:00:00.000Z",
                    "stream_seq": 0
                },
                "last_active_time": "2025-03-15T12:37:22.942Z",
                "name": "cyco-activity-dani-cve_data",
                "num_ack_pending": 0,
                "num_pending": 0,
                "num_redelivered": 0,
                "num_waiting": 0,
                "stream": {
                    "name": "cve_importer"
                }
            }
        },
        "server": {
            "id": "NAGGEW65XCMGPSNNQQF6FGKDGQCCXZFMHDI264FXBLT5MURRVDAAKII3",
            "time": "2025-03-15T12:37:22.942Z"
        }
    },
    "service": {
        "address": "127.0.0.1:55555",
        "type": "nats"
    }
}

Note: consumer data is only available in JetStream versions 2.9+.