Add ActiveMQ classic monitoring (#12109)
This commit is contained in:
parent
d71f858f2f
commit
7e978261fc
|
|
@ -650,6 +650,8 @@ jobs:
|
|||
config: test/e2e-v2/cases/rocketmq/e2e.yaml
|
||||
- name: ClickHouse
|
||||
config: test/e2e-v2/cases/clickhouse/clickhouse-prometheus-endpoint/e2e.yaml
|
||||
- name: ActiveMQ
|
||||
config: test/e2e-v2/cases/activemq/e2e.yaml
|
||||
|
||||
- name: UI Menu BanyanDB
|
||||
config: test/e2e-v2/cases/menu/banyandb/e2e.yaml
|
||||
|
|
|
|||
|
|
@ -107,6 +107,9 @@
|
|||
* Fix `Memory Swap Usage`/`Virtual Memory Usage` display with UI init.(Linux/Windows)
|
||||
* Fix inaccurate APISIX metrics
|
||||
* Fix inaccurate MongoDB Metrics.
|
||||
* Support Apache ActiveMQ server monitoring.
|
||||
* Add Service Hierarchy auto matching layer relationships (upper -> lower) as following:
|
||||
- ACTIVEMQ -> K8S_SERVICE
|
||||
|
||||
#### UI
|
||||
|
||||
|
|
@ -166,5 +169,6 @@
|
|||
* Remove `OpenTelemetry Exporter` support from meter doc, as this has been flagged as unmaintained on OTEL upstream.
|
||||
* Add doc of one-line quick start script for different storage types.
|
||||
* Add FAQ for `Why is Clickhouse or Loki or xxx not supported as a storage option?`.
|
||||
* Add `SWIP-8 Support ActiveMQ Monitoring`.
|
||||
|
||||
All issues and pull requests are [here](https://github.com/apache/skywalking/milestone/202?closed=1)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,107 @@
|
|||
# ActiveMQ classic monitoring
|
||||
|
||||
SkyWalking leverages jmx prometheus exporter for collecting metrics data from ActiveMQ classic. It leverages OpenTelemetry
|
||||
Collector to transfer the metrics to
|
||||
[OpenTelemetry receiver](opentelemetry-receiver.md) and into the [Meter System](./../../concepts-and-designs/meter.md).
|
||||
|
||||
## Data flow
|
||||
|
||||
1. ActiveMQ classic has extensive support for JMX to allow you to monitor and control the behavior of the broker via the JMX MBeans.
|
||||
2. The [jmx prometheus exporter](https://github.com/prometheus/jmx_exporter) collects metrics data from ActiveMQ classic, this exporter is intended to be run as a Java Agent, exposing a HTTP server and serving metrics of the local JVM.
|
||||
3. OpenTelemetry Collector fetches metrics from jmx prometheus exporter via Prometheus Receiver and pushes metrics to
|
||||
SkyWalking OAP Server via OpenTelemetry gRPC exporter.
|
||||
4. The SkyWalking OAP Server parses the expression with [MAL](../../concepts-and-designs/mal.md) to
|
||||
filter/calculate/aggregate and store the results.
|
||||
|
||||
## Setup
|
||||
|
||||
1. [Enable JMX](https://activemq.apache.org/components/classic/documentation/jmx) in `activemq.xml`, the JMX remote port defaults to `1616`, you can change it through `ACTIVEMQ_SUNJMX_START`. The example for ActiveMQ configuration, refer
|
||||
to [here](../../../../test/e2e-v2/cases/activemq/config/amq/activemq.xml).
|
||||
2. Set up [jmx prometheus exporter](https://github.com/prometheus/jmx_exporter) which runs as a Java Agent(recommended) of ActiveMQ classic. If you work with docker, you also can set up [a single server](https://github.com/bitnami/containers/tree/main/bitnami/jmx-exporter) for exporter, refer
|
||||
to [here](../../../../test/e2e-v2/cases/activemq/config/amq/config.yaml)(note the configuration of `includeObjectNames`).
|
||||
3. Set up [OpenTelemetry Collector](https://opentelemetry.io/docs/collector/getting-started/#docker). The example for OpenTelemetry Collector configuration, refer
|
||||
to [here](../../../../test/e2e-v2/cases/activemq/otel-collector-config.yaml).
|
||||
4. Config SkyWalking [OpenTelemetry receiver](opentelemetry-receiver.md).
|
||||
|
||||
## ActiveMQ classic Monitoring
|
||||
|
||||
ActiveMQ classic monitoring provides multidimensional metrics monitoring of ActiveMQ Exporter as `Layer: ActiveMQ` `Service` in
|
||||
the OAP. In each cluster, the broker is represented as `Instance` and the destination is represented as `Endpoint`.
|
||||
|
||||
### ActiveMQ Cluster Supported Metrics
|
||||
|
||||
| Monitoring Panel |Unit | Metric Name | Description | Data Source |
|
||||
|--------------------------------------------|------------|-------------------------------------------------------------------------|---------------------------------------------------------------------------------------|-------------------------|
|
||||
| System Load Average | Count | meter_activemq_cluster_system_load_average | The average system load, range:[0, 10000]. | JMX Prometheus Exporter |
|
||||
| Thread Count | Count | meter_activemq_cluster_thread_count | Threads currently used by the JVM. | JMX Prometheus Exporter |
|
||||
| Init Heap Memory Usage | Bytes | meter_activemq_cluster_heap_memory_usage_init | The initial amount of heap memory available. | JMX Prometheus Exporter |
|
||||
| Committed Heap Memory Usage | Bytes | meter_activemq_cluster_heap_memory_usage_committed | The memory is guaranteed to be available for the JVM to use. | JMX Prometheus Exporter |
|
||||
| Used Heap Memory Usage | Bytes | meter_activemq_cluster_heap_memory_usage_used | The amount of JVM heap memory currently in use. | JMX Prometheus Exporter |
|
||||
| Max Heap Memory Usage | Bytes | meter_activemq_cluster_heap_memory_usage_max | The maximum possible size of the heap memory. | JMX Prometheus Exporter |
|
||||
| GC G1 Old Collection Count | Count | meter_activemq_cluster_gc_g1_old_collection_count | The gc count of G1 Old Generation(JDK[9,17]). | JMX Prometheus Exporter |
|
||||
| GC G1 Young Collection Count | Count | meter_activemq_cluster_gc_g1_young_collection_count | The gc count of G1 Young Generation(JDK[9,17]). | JMX Prometheus Exporter |
|
||||
| GC G1 Old Collection Time | ms | meter_activemq_cluster_gc_g1_old_collection_time | The gc time spent in G1 Old Generation in milliseconds(JDK[9,17]). | JMX Prometheus Exporter |
|
||||
| GC G1 Young Collection Time | ms | meter_activemq_cluster_gc_g1_young_collection_time | The gc time spent in G1 Young Generation in milliseconds(JDK[9,17]). | JMX Prometheus Exporter |
|
||||
| GC Parallel Old Collection Count | Count | meter_activemq_cluster_gc_parallel_old_collection_count | The gc count of Parallel Old Generation(JDK[6,8]). | JMX Prometheus Exporter |
|
||||
| GC Parallel Young Collection Count | Count | meter_activemq_cluster_gc_parallel_young_collection_count | The gc count of Parallel Young Generation(JDK[6,8]). | JMX Prometheus Exporter |
|
||||
| GC Parallel Old Collection Time | ms | meter_activemq_cluster_gc_parallel_old_collection_time | The gc time spent in Parallel Old Generation in milliseconds(JDK[6,8]). | JMX Prometheus Exporter |
|
||||
| GC Parallel Young Collection Time | ms | meter_activemq_cluster_gc_parallel_young_collection_time | The gc time spent in Parallel Young Generation in milliseconds(JDK[6,8]). | JMX Prometheus Exporter |
|
||||
| Enqueue Rate | Count/s | meter_activemq_cluster_enqueue_rate | Number of messages that have been sent to the cluster per second(JDK[6,8]). | JMX Prometheus Exporter |
|
||||
| Dequeue Rate | Count/s | meter_activemq_cluster_dequeue_rate | Number of messages that have been acknowledged or discarded on the cluster per second.| JMX Prometheus Exporter |
|
||||
| Dispatch Rate | Count/s | meter_activemq_cluster_dispatch_rate | Number of messages that has been delivered to consumers per second. | JMX Prometheus Exporter |
|
||||
| Expired Rate | Count/s | meter_activemq_cluster_expired_rate | Number of messages that have been expired per second. | JMX Prometheus Exporter |
|
||||
| Average Enqueue Time | ms | meter_activemq_cluster_average_enqueue_time | The average time a message was held on this cluster. | JMX Prometheus Exporter |
|
||||
| Max Enqueue Time | ms | meter_activemq_cluster_max_enqueue_time | The max time a message was held on this cluster. | JMX Prometheus Exporter |
|
||||
|
||||
### ActiveMQ Broker Supported Metrics
|
||||
|
||||
| Monitoring Panel |Unit | Metric Name | Description | Data Source |
|
||||
|--------------------------------------------|-----------|-------------------------------------------------------------------------|----------------------------------------------------------------------------------------------- |-------------------------|
|
||||
| Uptime | sec | meter_activemq_broker_uptime | Uptime of the broker in day. | JMX Prometheus Exporter |
|
||||
| State | | meter_activemq_broker_state | If slave broker 1 else 0. | JMX Prometheus Exporter |
|
||||
| Current Connentions | Count | meter_activemq_broker_current_connentions | The number of clients connected to the broker currently. | JMX Prometheus Exporter |
|
||||
| Current Producer Count | Count | meter_activemq_broker_current_producer_count | The number of producers currently attached to the broker. | JMX Prometheus Exporter |
|
||||
| Current Consumer Count | Count | meter_activemq_broker_current_consumer_count | The number of consumers consuming messages from the broker. | JMX Prometheus Exporter |
|
||||
| Producer Count | Count | meter_activemq_broker_producer_count | Number of message producers active on destinations. | JMX Prometheus Exporter |
|
||||
| Consumer Count | Count | meter_activemq_broker_consumer_count | Number of message consumers subscribed to destinations. | JMX Prometheus Exporter |
|
||||
| Enqueue Count | Count | meter_activemq_broker_enqueue_count | The total number of messages sent to the broker. | JMX Prometheus Exporter |
|
||||
| Dequeue Count | Count | meter_activemq_broker_dequeue_count | The total number of messages the broker has delivered to consumers. | JMX Prometheus Exporter |
|
||||
| Enqueue Rate | Count/sec | meter_activemq_broker_enqueue_rate | The total number of messages sent to the broker per second. | JMX Prometheus Exporter |
|
||||
| Dequeue Rate | Count/sec | meter_activemq_broker_dequeue_rate | The total number of messages the broker has delivered to consumers per second. | JMX Prometheus Exporter |
|
||||
| Memory Percent Usage | % | meter_activemq_broker_memory_percent_usage | Percentage of configured memory used by the broker. | JMX Prometheus Exporter |
|
||||
| Memory Usage | Bytes | meter_activemq_broker_memory_percent_usage | Memory used by undelivered messages in bytes. | JMX Prometheus Exporter |
|
||||
| Memory Limit | Bytes | meter_activemq_broker_memory_limit | Memory limited used for holding undelivered messages before paging to temporary storage. | JMX Prometheus Exporter |
|
||||
| Store Percent Usage | % | meter_activemq_broker_store_percent_usage | Percentage of available disk space used for persistent message storage. | JMX Prometheus Exporter |
|
||||
| Store Limit | Bytes | meter_activemq_broker_store_limit | Disk limited used for persistent messages before producers are blocked. | JMX Prometheus Exporter |
|
||||
| Temp Percent Usage | Bytes | meter_activemq_broker_temp_percent_usage | Percentage of available disk space used for non-persistent message storage. | JMX Prometheus Exporter |
|
||||
| Temp Limit | Bytes | meter_activemq_broker_temp_limit | Disk limited used for non-persistent messages and temporary data before producers are blocked. | JMX Prometheus Exporter |
|
||||
| Average Message Size | Bytes | meter_activemq_broker_average_message_size | Average message size on this broker. | JMX Prometheus Exporter |
|
||||
| Max Message Size | Bytes | meter_activemq_broker_max_message_size | Max message size on this broker. | JMX Prometheus Exporter |
|
||||
| Queue Size | Count | meter_activemq_broker_queue_size | Number of messages on this broker that have been dispatched but not acknowledged. | JMX Prometheus Exporter |
|
||||
|
||||
### ActiveMQ Destination Supported Metrics
|
||||
|
||||
| Monitoring Panel |Unit | Metric Name | Description | Data Source |
|
||||
|--------------------------------------------|------------|-------------------------------------------------------------------------|-----------------------------------------------------------------------------------------|-------------------------|
|
||||
| Producer Count | Count | meter_activemq_destination_producer_count | Number of producers attached to this destination. | JMX Prometheus Exporter |
|
||||
| Consumer Count | Count | meter_activemq_destination_consumer_count | Number of consumers subscribed to this destination. | JMX Prometheus Exporter |
|
||||
| Topic Consumer Count | Count | meter_activemq_destination_topic_consumer_count | Number of consumers subscribed to the topics. | JMX Prometheus Exporter |
|
||||
| Queue Size | Count | meter_activemq_destination_queue_size | The number of messages that have not been acknowledged by a consumer. | JMX Prometheus Exporter |
|
||||
| Memory Usage | Bytes | meter_activemq_destination_memory_usage | Memory used by undelivered messages in bytes. | JMX Prometheus Exporter |
|
||||
| Memory Percent Usage | % | meter_activemq_destination_memory_percent_usage | Percentage of configured memory used by the destination. | JMX Prometheus Exporter |
|
||||
| Enqueue Count | Count | meter_activemq_destination_enqueue_count | The number of messages sent to the destination. | JMX Prometheus Exporter |
|
||||
| Dequeue Count | Count | meter_activemq_destination_dequeue_count | The number of messages the destination has delivered to consumers. | JMX Prometheus Exporter |
|
||||
| Average Enqueue Time | ms | meter_activemq_destination_average_enqueue_time | The average time a message was held on this destination. | JMX Prometheus Exporter |
|
||||
| Max Enqueue Time | ms | meter_activemq_destination_max_enqueue_time | The max time a message was held on this destination. | JMX Prometheus Exporter |
|
||||
| Dispatch Count | Count | meter_activemq_destination_dispatch_count | Number of messages that has been delivered to consumers. | JMX Prometheus Exporter |
|
||||
| Expired Count | Count | meter_activemq_destination_expired_count | Number of messages that have been expired. | JMX Prometheus Exporter |
|
||||
| Inflight Count | Count | meter_activemq_destination_inflight_count | Number of messages that have been dispatched to but not acknowledged by consumers. | JMX Prometheus Exporter |
|
||||
| Average Message Size | Bytes | meter_activemq_destination_average_message_size | Average message size on this destination. | JMX Prometheus Exporter |
|
||||
| Max Message Size | Bytes | meter_activemq_destination_max_message_size | Max message size on this destination. | JMX Prometheus Exporter |
|
||||
|
||||
## Customizations
|
||||
|
||||
You can customize your own metrics/expression/dashboard panel.
|
||||
The metrics definition and expression rules are found
|
||||
in `otel-rules/activemq/activemq-cluster.yaml, otel-rules/activemq/activemq-broker.yaml, otel-rules/activemq/activemq-destination.yaml`.
|
||||
The ActiveMQ dashboard panel configurations are found in `ui-initialized-templates/activemq`.
|
||||
|
|
@ -0,0 +1,100 @@
|
|||
# Support ActiveMQ classic Monitoring
|
||||
|
||||
## Motivation
|
||||
|
||||
[Apache ActiveMQ Classic](https://activemq.apache.org/components/classic/) is a popular and powerful open source messaging and Integration Patterns server. It supports many Cross Language Clients and Protocols, comes with easy to use Enterprise Integration Patterns and many advanced features.
|
||||
|
||||
Now I want to add ActiveMQ Classic monitoring via the [OpenTelemetry Collector](https://opentelemetry.io/docs) which fetches metrics from [jmx prometheus exporter](https://github.com/prometheus/jmx_exporter) run as a Java Agent.
|
||||
|
||||
## Architecture Graph
|
||||
|
||||
There is no significant architecture-level change.
|
||||
|
||||
## Proposed Changes
|
||||
|
||||
`Apache ActiveMQ Classic` has extensive support for JMX to allow you to monitor and control the behavior of the broker via the JMX MBeans.
|
||||
|
||||
[Jmx prometheus exporter](https://github.com/prometheus/jmx_exporter) collects metrics data from ActiveMQ classic, this exporter is intended to be run as a Java Agent, exposing a HTTP server and serving metrics of the local JVM.
|
||||
|
||||
Using openTelemetry receiver to fetch these metrics to SkyWalking OAP server.
|
||||
|
||||
### ActiveMQ Cluster Supported Metrics
|
||||
|
||||
| Monitoring Panel |Unit | Metric Name | Description | Data Source |
|
||||
|--------------------------------------------|------------|-------------------------------------------------------------------------|---------------------------------------------------------------------------------------|-------------------------|
|
||||
| System Load Average | Count | meter_activemq_cluster_system_load_average | The average system load, range:[0, 10000]. | JMX Prometheus Exporter |
|
||||
| Thread Count | Count | meter_activemq_cluster_thread_count | Threads currently used by the JVM. | JMX Prometheus Exporter |
|
||||
| Init Heap Memory Usage | Bytes | meter_activemq_cluster_heap_memory_usage_init | The initial amount of heap memory available. | JMX Prometheus Exporter |
|
||||
| Committed Heap Memory Usage | Bytes | meter_activemq_cluster_heap_memory_usage_committed | The memory is guaranteed to be available for the JVM to use. | JMX Prometheus Exporter |
|
||||
| Used Heap Memory Usage | Bytes | meter_activemq_cluster_heap_memory_usage_used | The amount of JVM heap memory currently in use. | JMX Prometheus Exporter |
|
||||
| Max Heap Memory Usage | Bytes | meter_activemq_cluster_heap_memory_usage_max | The maximum possible size of the heap memory. | JMX Prometheus Exporter |
|
||||
| GC G1 Old Collection Count | Count | meter_activemq_cluster_gc_g1_old_collection_count | The gc count of G1 Old Generation(JDK[9,17]). | JMX Prometheus Exporter |
|
||||
| GC G1 Young Collection Count | Count | meter_activemq_cluster_gc_g1_young_collection_count | The gc count of G1 Young Generation(JDK[9,17]). | JMX Prometheus Exporter |
|
||||
| GC G1 Old Collection Time | ms | meter_activemq_cluster_gc_g1_old_collection_time | The gc time spent in G1 Old Generation in milliseconds(JDK[9,17]). | JMX Prometheus Exporter |
|
||||
| GC G1 Young Collection Time | ms | meter_activemq_cluster_gc_g1_young_collection_time | The gc time spent in G1 Young Generation in milliseconds(JDK[9,17]). | JMX Prometheus Exporter |
|
||||
| GC Parallel Old Collection Count | Count | meter_activemq_cluster_gc_parallel_old_collection_count | The gc count of Parallel Old Generation(JDK[6,8]). | JMX Prometheus Exporter |
|
||||
| GC Parallel Young Collection Count | Count | meter_activemq_cluster_gc_parallel_young_collection_count | The gc count of Parallel Young Generation(JDK[6,8]). | JMX Prometheus Exporter |
|
||||
| GC Parallel Old Collection Time | ms | meter_activemq_cluster_gc_parallel_old_collection_time | The gc time spent in Parallel Old Generation in milliseconds(JDK[6,8]). | JMX Prometheus Exporter |
|
||||
| GC Parallel Young Collection Time | ms | meter_activemq_cluster_gc_parallel_young_collection_time | The gc time spent in Parallel Young Generation in milliseconds(JDK[6,8]). | JMX Prometheus Exporter |
|
||||
| Enqueue Rate | Count/s | meter_activemq_cluster_enqueue_rate | Number of messages that have been sent to the cluster per second(JDK[6,8]). | JMX Prometheus Exporter |
|
||||
| Dequeue Rate | Count/s | meter_activemq_cluster_dequeue_rate | Number of messages that have been acknowledged or discarded on the cluster per second.| JMX Prometheus Exporter |
|
||||
| Dispatch Rate | Count/s | meter_activemq_cluster_dispatch_rate | Number of messages that has been delivered to consumers per second. | JMX Prometheus Exporter |
|
||||
| Expired Rate | Count/s | meter_activemq_cluster_expired_rate | Number of messages that have been expired per second. | JMX Prometheus Exporter |
|
||||
| Average Enqueue Time | ms | meter_activemq_cluster_average_enqueue_time | The average time a message was held on this cluster. | JMX Prometheus Exporter |
|
||||
| Max Enqueue Time | ms | meter_activemq_cluster_max_enqueue_time | The max time a message was held on this cluster. | JMX Prometheus Exporter |
|
||||
|
||||
### ActiveMQ Broker Supported Metrics
|
||||
|
||||
| Monitoring Panel |Unit | Metric Name | Description | Data Source |
|
||||
|--------------------------------------------|-----------|-------------------------------------------------------------------------|----------------------------------------------------------------------------------------------- |-------------------------|
|
||||
| Uptime | sec | meter_activemq_broker_uptime | Uptime of the broker in day. | JMX Prometheus Exporter |
|
||||
| State | | meter_activemq_broker_state | If slave broker 1 else 0. | JMX Prometheus Exporter |
|
||||
| Current Connentions | Count | meter_activemq_broker_current_connentions | The number of clients connected to the broker currently. | JMX Prometheus Exporter |
|
||||
| Current Producer Count | Count | meter_activemq_broker_current_producer_count | The number of producers currently attached to the broker. | JMX Prometheus Exporter |
|
||||
| Current Consumer Count | Count | meter_activemq_broker_current_consumer_count | The number of consumers consuming messages from the broker. | JMX Prometheus Exporter |
|
||||
| Producer Count | Count | meter_activemq_broker_producer_count | Number of message producers active on destinations. | JMX Prometheus Exporter |
|
||||
| Consumer Count | Count | meter_activemq_broker_consumer_count | Number of message consumers subscribed to destinations. | JMX Prometheus Exporter |
|
||||
| Enqueue Count | Count | meter_activemq_broker_enqueue_count | The total number of messages sent to the broker. | JMX Prometheus Exporter |
|
||||
| Dequeue Count | Count | meter_activemq_broker_dequeue_count | The total number of messages the broker has delivered to consumers. | JMX Prometheus Exporter |
|
||||
| Enqueue Rate | Count/sec | meter_activemq_broker_enqueue_rate | The total number of messages sent to the broker per second. | JMX Prometheus Exporter |
|
||||
| Dequeue Rate | Count/sec | meter_activemq_broker_dequeue_rate | The total number of messages the broker has delivered to consumers per second. | JMX Prometheus Exporter |
|
||||
| Memory Percent Usage | % | meter_activemq_broker_memory_percent_usage | Percentage of configured memory used by the broker. | JMX Prometheus Exporter |
|
||||
| Memory Usage | Bytes | meter_activemq_broker_memory_percent_usage | Memory used by undelivered messages in bytes. | JMX Prometheus Exporter |
|
||||
| Memory Limit | Bytes | meter_activemq_broker_memory_limit | Memory limited used for holding undelivered messages before paging to temporary storage. | JMX Prometheus Exporter |
|
||||
| Store Percent Usage | % | meter_activemq_broker_store_percent_usage | Percentage of available disk space used for persistent message storage. | JMX Prometheus Exporter |
|
||||
| Store Limit | Bytes | meter_activemq_broker_store_limit | Disk limited used for persistent messages before producers are blocked. | JMX Prometheus Exporter |
|
||||
| Temp Percent Usage | Bytes | meter_activemq_broker_temp_percent_usage | Percentage of available disk space used for non-persistent message storage. | JMX Prometheus Exporter |
|
||||
| Temp Limit | Bytes | meter_activemq_broker_temp_limit | Disk limited used for non-persistent messages and temporary data before producers are blocked. | JMX Prometheus Exporter |
|
||||
| Average Message Size | Bytes | meter_activemq_broker_average_message_size | Average message size on this broker. | JMX Prometheus Exporter |
|
||||
| Max Message Size | Bytes | meter_activemq_broker_max_message_size | Max message size on this broker. | JMX Prometheus Exporter |
|
||||
| Queue Size | Count | meter_activemq_broker_queue_size | Number of messages on this broker that have been dispatched but not acknowledged. | JMX Prometheus Exporter |
|
||||
|
||||
### ActiveMQ Destination Supported Metrics
|
||||
|
||||
| Monitoring Panel |Unit | Metric Name | Description | Data Source |
|
||||
|--------------------------------------------|------------|-------------------------------------------------------------------------|-----------------------------------------------------------------------------------------|-------------------------|
|
||||
| Producer Count | Count | meter_activemq_destination_producer_count | Number of producers attached to this destination. | JMX Prometheus Exporter |
|
||||
| Consumer Count | Count | meter_activemq_destination_consumer_count | Number of consumers subscribed to this destination. | JMX Prometheus Exporter |
|
||||
| Topic Consumer Count | Count | meter_activemq_destination_topic_consumer_count | Number of consumers subscribed to the topics. | JMX Prometheus Exporter |
|
||||
| Queue Size | Count | meter_activemq_destination_queue_size | The number of messages that have not been acknowledged by a consumer. | JMX Prometheus Exporter |
|
||||
| Memory Usage | Bytes | meter_activemq_destination_memory_usage | Memory used by undelivered messages in bytes. | JMX Prometheus Exporter |
|
||||
| Memory Percent Usage | % | meter_activemq_destination_memory_percent_usage | Percentage of configured memory used by the destination. | JMX Prometheus Exporter |
|
||||
| Enqueue Count | Count | meter_activemq_destination_enqueue_count | The number of messages sent to the destination. | JMX Prometheus Exporter |
|
||||
| Dequeue Count | Count | meter_activemq_destination_dequeue_count | The number of messages the destination has delivered to consumers. | JMX Prometheus Exporter |
|
||||
| Average Enqueue Time | ms | meter_activemq_destination_average_enqueue_time | The average time a message was held on this destination. | JMX Prometheus Exporter |
|
||||
| Max Enqueue Time | ms | meter_activemq_destination_max_enqueue_time | The max time a message was held on this destination. | JMX Prometheus Exporter |
|
||||
| Dispatch Count | Count | meter_activemq_destination_dispatch_count | Number of messages that has been delivered to consumers. | JMX Prometheus Exporter |
|
||||
| Expired Count | Count | meter_activemq_destination_expired_count | Number of messages that have been expired. | JMX Prometheus Exporter |
|
||||
| Inflight Count | Count | meter_activemq_destination_inflight_count | Number of messages that have been dispatched to but not acknowledged by consumers. | JMX Prometheus Exporter |
|
||||
| Average Message Size | Bytes | meter_activemq_destination_average_message_size | Average message size on this destination. | JMX Prometheus Exporter |
|
||||
| Max Message Size | Bytes | meter_activemq_destination_max_message_size | Max message size on this destination. | JMX Prometheus Exporter |
|
||||
|
||||
## Imported Dependencies libs and their licenses.
|
||||
|
||||
No new dependency.
|
||||
|
||||
## Compatibility
|
||||
|
||||
no breaking changes.
|
||||
|
||||
## General usage docs
|
||||
|
|
@ -68,10 +68,11 @@ All accepted and proposed SWIPs can be found in [here](https://github.com/apache
|
|||
|
||||
## Known SWIPs
|
||||
|
||||
Next SWIP Number: 6
|
||||
Next SWIP Number: 8
|
||||
|
||||
### Accepted SWIPs
|
||||
|
||||
- [SWIP-8 Support ActiveMQ Monitoring](SWIP-8.md)
|
||||
- [SWIP-5 Support ClickHouse Monitoring](SWIP-5.md)
|
||||
- [SWIP-4 Support available layers of service in the topology](SWIP-4.md)
|
||||
- [SWIP-3 Support RocketMQ Monitoring](SWIP-3.md)
|
||||
|
|
|
|||
|
|
@ -264,6 +264,8 @@ catalog:
|
|||
path: "/en/setup/backend/backend-pulsar-monitoring"
|
||||
- name: "RocketMQ"
|
||||
path: "/en/setup/backend/backend-rocketmq-monitoring"
|
||||
- name: "ActiveMQ"
|
||||
path: "/en/setup/backend/backend-activemq-monitoring"
|
||||
- name: "Self Observability"
|
||||
catalog:
|
||||
- name: "OAP self telemetry"
|
||||
|
|
|
|||
|
|
@ -223,7 +223,12 @@ public enum Layer {
|
|||
/**
|
||||
* A high-performance, column-oriented SQL database management system (DBMS) for online analytical processing (OLAP).
|
||||
*/
|
||||
CLICKHOUSE(36, true);
|
||||
CLICKHOUSE(36, true),
|
||||
|
||||
/**
|
||||
* ActiveMQ is a popular open source, multi-protocol, Java-based message broker.
|
||||
*/
|
||||
ACTIVEMQ(37, true);
|
||||
|
||||
private final int value;
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -74,6 +74,7 @@ public class UITemplateInitializer {
|
|||
Layer.NGINX.name(),
|
||||
Layer.ROCKETMQ.name(),
|
||||
Layer.CLICKHOUSE.name(),
|
||||
Layer.ACTIVEMQ.name(),
|
||||
"custom"
|
||||
};
|
||||
private final UITemplateManagementService uiTemplateManagementService;
|
||||
|
|
|
|||
|
|
@ -357,7 +357,7 @@ receiver-otel:
|
|||
selector: ${SW_OTEL_RECEIVER:default}
|
||||
default:
|
||||
enabledHandlers: ${SW_OTEL_RECEIVER_ENABLED_HANDLERS:"otlp-metrics,otlp-logs"}
|
||||
enabledOtelMetricsRules: ${SW_OTEL_RECEIVER_ENABLED_OTEL_METRICS_RULES:"apisix,nginx/*,k8s/*,istio-controlplane,vm,mysql/*,postgresql/*,oap,aws-eks/*,windows,aws-s3/*,aws-dynamodb/*,aws-gateway/*,redis/*,elasticsearch/*,rabbitmq/*,mongodb/*,kafka/*,pulsar/*,bookkeeper/*,rocketmq/*,clickhouse/*"}
|
||||
enabledOtelMetricsRules: ${SW_OTEL_RECEIVER_ENABLED_OTEL_METRICS_RULES:"apisix,nginx/*,k8s/*,istio-controlplane,vm,mysql/*,postgresql/*,oap,aws-eks/*,windows,aws-s3/*,aws-dynamodb/*,aws-gateway/*,redis/*,elasticsearch/*,rabbitmq/*,mongodb/*,kafka/*,pulsar/*,bookkeeper/*,rocketmq/*,clickhouse/*,activemq/*"}
|
||||
|
||||
receiver-zipkin:
|
||||
selector: ${SW_RECEIVER_ZIPKIN:-}
|
||||
|
|
|
|||
|
|
@ -60,6 +60,9 @@ hierarchy:
|
|||
PULSAR:
|
||||
K8S_SERVICE: short-name
|
||||
|
||||
ACTIVEMQ:
|
||||
K8S_SERVICE: short-name
|
||||
|
||||
VIRTUAL_DATABASE:
|
||||
MYSQL: lower-short-name-with-fqdn
|
||||
POSTGRESQL: lower-short-name-with-fqdn
|
||||
|
|
@ -103,6 +106,7 @@ layer-levels:
|
|||
RABBITMQ: 2
|
||||
KAFKA: 2
|
||||
PULSAR: 2
|
||||
ACTIVEMQ: 2
|
||||
|
||||
MESH_DP: 1
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,97 @@
|
|||
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
# contributor license agreements. See the NOTICE file distributed with
|
||||
# this work for additional information regarding copyright ownership.
|
||||
# The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
# (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
# This will parse a textual representation of a duration. The formats
|
||||
# accepted are based on the ISO-8601 duration format {@code PnDTnHnMn.nS}
|
||||
# with days considered to be exactly 24 hours.
|
||||
# <p>
|
||||
# Examples:
|
||||
# <pre>
|
||||
# "PT20.345S" -- parses as "20.345 seconds"
|
||||
# "PT15M" -- parses as "15 minutes" (where a minute is 60 seconds)
|
||||
# "PT10H" -- parses as "10 hours" (where an hour is 3600 seconds)
|
||||
# "P2D" -- parses as "2 days" (where a day is 24 hours or 86400 seconds)
|
||||
# "P2DT3H4M" -- parses as "2 days, 3 hours and 4 minutes"
|
||||
# "P-6H3M" -- parses as "-6 hours and +3 minutes"
|
||||
# "-P6H3M" -- parses as "-6 hours and -3 minutes"
|
||||
# "-P-6H+3M" -- parses as "+6 hours and -3 minutes"
|
||||
# </pre>
|
||||
filter: "{ tags -> tags.job_name == 'activemq-monitoring' }" # The OpenTelemetry job name
|
||||
expSuffix: tag({tags -> tags.cluster = 'activemq::' + tags.cluster}).instance(['cluster'], ['brokerName'], Layer.ACTIVEMQ)
|
||||
metricPrefix: meter_activemq_broker
|
||||
metricsRules:
|
||||
# Uptime of the broker in day.
|
||||
- name: uptime
|
||||
exp: org_apache_activemq_Broker_UptimeMillis.max(['cluster','brokerName','service_instance_id'])
|
||||
# If slave broker 1 else 0.
|
||||
- name: state
|
||||
exp: org_apache_activemq_Broker_Slave.sum(['cluster','brokerName','service_instance_id'])
|
||||
# The number of clients connected to the broker currently.
|
||||
- name: current_connentions
|
||||
exp: org_apache_activemq_Broker_CurrentConnectionsCount.sum(['cluster','brokerName','service_instance_id'])
|
||||
# The number of producers currently attached to the broker.
|
||||
- name: current_producer_count
|
||||
exp: org_apache_activemq_Broker_ProducerCount.sum(['cluster','brokerName','service_instance_id'])
|
||||
# The number of consumers consuming messages from the broker.
|
||||
- name: current_consumer_count
|
||||
exp: org_apache_activemq_Broker_ConsumerCount.sum(['cluster','brokerName','service_instance_id'])
|
||||
# Number of message producers active on destinations.
|
||||
- name: producer_count
|
||||
exp: org_apache_activemq_Broker_TotalProducerCount.sum(['cluster','brokerName','service_instance_id']).increase("PT1M")
|
||||
# Number of message consumers subscribed to destinations.
|
||||
- name: consumer_count
|
||||
exp: org_apache_activemq_Broker_TotalConsumerCount.sum(['cluster','brokerName','service_instance_id']).increase("PT1M")
|
||||
# The total number of messages sent to the broker.
|
||||
- name: enqueue_count
|
||||
exp: org_apache_activemq_Broker_TotalEnqueueCount.sum(['cluster','brokerName','service_instance_id']).increase("PT1M")
|
||||
# The total number of messages the broker has delivered to consumers.
|
||||
- name: dequeue_count
|
||||
exp: org_apache_activemq_Broker_TotalDequeueCount.sum(['cluster','brokerName','service_instance_id']).increase("PT1M")
|
||||
# The total number of messages sent to the broker per second.
|
||||
- name: enqueue_rate
|
||||
exp: org_apache_activemq_Broker_TotalEnqueueCount.sum(['cluster','brokerName','service_instance_id']).rate("PT1M")
|
||||
# The total number of messages the broker has delivered to consumers per second.
|
||||
- name: dequeue_rate
|
||||
exp: org_apache_activemq_Broker_TotalDequeueCount.sum(['cluster','brokerName','service_instance_id']).rate("PT1M")
|
||||
# Percentage of configured memory used by the broker.
|
||||
- name: memory_percent_usage
|
||||
exp: org_apache_activemq_Broker_MemoryPercentUsage.sum(['cluster','brokerName','service_instance_id'])
|
||||
# Memory used by undelivered messages in bytes.
|
||||
- name: memory_usage
|
||||
exp: org_apache_activemq_Broker_MemoryUsageByteCount.sum(['cluster','brokerName','service_instance_id'])
|
||||
# Memory limited used for holding undelivered messages before paging to temporary storage.
|
||||
- name: memory_limit
|
||||
exp: org_apache_activemq_Broker_MemoryLimit.sum(['cluster','brokerName','service_instance_id'])
|
||||
# Percentage of available disk space used for persistent message storage.
|
||||
- name: store_percent_usage
|
||||
exp: org_apache_activemq_Broker_StorePercentUsage.sum(['cluster','brokerName','service_instance_id'])
|
||||
# Disk limited used for persistent messages before producers are blocked.
|
||||
- name: store_limit
|
||||
exp: org_apache_activemq_Broker_StoreLimit.sum(['cluster','brokerName','service_instance_id'])
|
||||
# Percentage of available disk space used for non-persistent message storage.
|
||||
- name: temp_percent_usage
|
||||
exp: org_apache_activemq_Broker_TempPercentUsage.sum(['cluster','brokerName','service_instance_id'])
|
||||
# Disk limited used for non-persistent messages and temporary data before producers are blocked.
|
||||
- name: temp_limit
|
||||
exp: org_apache_activemq_Broker_TempLimit.sum(['cluster','brokerName','service_instance_id'])
|
||||
# Average message size on this broker.
|
||||
- name: average_message_size
|
||||
exp: org_apache_activemq_Broker_AverageMessageSize.avg(['cluster','brokerName','service_instance_id'])
|
||||
# Max message size on this broker.
|
||||
- name: max_message_size
|
||||
exp: org_apache_activemq_Broker_MaxMessageSize.max(['cluster','brokerName','service_instance_id'])
|
||||
# Number of messages on this broker that have been dispatched but not acknowledged.
|
||||
- name: queue_size
|
||||
exp: org_apache_activemq_Broker_QueueSize.sum(['cluster','brokerName','destinationName'])
|
||||
|
|
@ -0,0 +1,95 @@
|
|||
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
# contributor license agreements. See the NOTICE file distributed with
|
||||
# this work for additional information regarding copyright ownership.
|
||||
# The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
# (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
# This will parse a textual representation of a duration. The formats
|
||||
# accepted are based on the ISO-8601 duration format {@code PnDTnHnMn.nS}
|
||||
# with days considered to be exactly 24 hours.
|
||||
# <p>
|
||||
# Examples:
|
||||
# <pre>
|
||||
# "PT20.345S" -- parses as "20.345 seconds"
|
||||
# "PT15M" -- parses as "15 minutes" (where a minute is 60 seconds)
|
||||
# "PT10H" -- parses as "10 hours" (where an hour is 3600 seconds)
|
||||
# "P2D" -- parses as "2 days" (where a day is 24 hours or 86400 seconds)
|
||||
# "P2DT3H4M" -- parses as "2 days, 3 hours and 4 minutes"
|
||||
# "P-6H3M" -- parses as "-6 hours and +3 minutes"
|
||||
# "-P6H3M" -- parses as "-6 hours and -3 minutes"
|
||||
# "-P-6H+3M" -- parses as "+6 hours and -3 minutes"
|
||||
# </pre>
|
||||
|
||||
filter: "{ tags -> tags.job_name == 'activemq-monitoring' }" # The OpenTelemetry job name
|
||||
expSuffix: tag({tags -> tags.cluster = 'activemq::' + tags.cluster}).service(['cluster'], Layer.ACTIVEMQ)
|
||||
metricPrefix: meter_activemq_cluster
|
||||
metricsRules:
|
||||
# The average system load, range:[0,10000].
|
||||
- name: system_load_average
|
||||
exp: java_lang_OperatingSystem_SystemLoadAverage.avg(['cluster','service_instance_id'])*10000
|
||||
# Threads currently used by the JVM.
|
||||
- name: thread_count
|
||||
exp: java_lang_Threading_ThreadCount.sum(['cluster','service_instance_id'])
|
||||
# The initial amount of heap memory available.
|
||||
- name: heap_memory_usage_init
|
||||
exp: java_lang_Memory_HeapMemoryUsage_init.sum(['cluster','service_instance_id'])
|
||||
# The memory is guaranteed to be available for the JVM to use.
|
||||
- name: heap_memory_usage_committed
|
||||
exp: java_lang_Memory_HeapMemoryUsage_committed.sum(['cluster','service_instance_id'])
|
||||
# The amount of JVM heap memory currently in use.
|
||||
- name: heap_memory_usage_used
|
||||
exp: java_lang_Memory_HeapMemoryUsage_used.sum(['cluster','service_instance_id'])
|
||||
# The maximum possible size of the heap memory.
|
||||
- name: heap_memory_usage_max
|
||||
exp: java_lang_Memory_HeapMemoryUsage_max.sum(['cluster','service_instance_id'])
|
||||
# The gc count of G1 Old Generation(JDK[9,17]).
|
||||
- name: gc_g1_old_collection_count
|
||||
exp: java_lang_G1_Old_Generation_CollectionCount.tagEqual('type','GarbageCollector').sum(['cluster','service_instance_id']).increase("PT1M")
|
||||
# The gc count of G1 Young Generation(JDK[9,17]).
|
||||
- name: gc_g1_young_collection_count
|
||||
exp: java_lang_G1_Young_Generation_CollectionCount.tagEqual('type','GarbageCollector').sum(['cluster','service_instance_id']).increase("PT1M")
|
||||
# The gc time spent in G1 Old Generation in milliseconds(JDK[9,17]).
|
||||
- name: gc_g1_old_collection_time
|
||||
exp: java_lang_G1_Old_Generation_CollectionTime.tagEqual('type','GarbageCollector').sum(['cluster','service_instance_id']).increase("PT1M")
|
||||
# The gc time spent in G1 Young Generation in milliseconds(JDK[9,17]).
|
||||
- name: gc_g1_young_collection_time
|
||||
exp: java_lang_G1_Young_Generation_CollectionTime.tagEqual('type','GarbageCollector').sum(['cluster','service_instance_id']).increase("PT1M")
|
||||
# The gc count of PS MarkSweep(JDK[6,8]).
|
||||
- name: gc_parallel_old_collection_count
|
||||
exp: java_lang_GarbageCollector_CollectionCount.tagEqual('name','PS MarkSweep').sum(['cluster','service_instance_id']).increase("PT1M")
|
||||
# The gc count of PS Scavenge(JDK[6,8]).
|
||||
- name: gc_parallel_young_collection_count
|
||||
exp: java_lang_GarbageCollector_CollectionCount.tagEqual('name','PS Scavenge').sum(['cluster','service_instance_id']).increase("PT1M")
|
||||
# The gc time spent in PS MarkSweep in milliseconds(JDK[6,8]).
|
||||
- name: gc_parallel_old_collection_time
|
||||
exp: java_lang_GarbageCollector_CollectionTime.tagEqual('name','PS MarkSweep').sum(['cluster','service_instance_id']).increase("PT1M")
|
||||
# The gc time spent in PS Scavenge in milliseconds(JDK[6,8]).
|
||||
- name: gc_parallel_young_collection_time
|
||||
exp: java_lang_GarbageCollector_CollectionTime.tagEqual('name','PS Scavenge').sum(['cluster','service_instance_id']).increase("PT1M")
|
||||
# Number of messages that have been sent to the broker per second.
|
||||
- name: enqueue_rate
|
||||
exp: org_apache_activemq_Broker_TotalEnqueueCount.sum((['cluster'])).rate("PT1M")
|
||||
# Number of messages that have been acknowledged or discarded on the broker per second.
|
||||
- name: dequeue_rate
|
||||
exp: org_apache_activemq_Broker_TotalDequeueCount.sum(['cluster']).rate("PT1M")
|
||||
# Number of messages that has been delivered to consumers per second.
|
||||
- name: dispatch_rate
|
||||
exp: org_apache_activemq_Broker_DispatchCount.sum(['cluster']).rate("PT1M")
|
||||
# Number of messages that have been expired per second.
|
||||
- name: expired_rate
|
||||
exp: org_apache_activemq_Broker_ExpiredCount.sum(['cluster']).rate("PT1M")
|
||||
# The average time a message was held on this cluster.
|
||||
- name: average_enqueue_time
|
||||
exp: org_apache_activemq_Broker_AverageEnqueueTime.avg(['cluster'])
|
||||
# The max time a message was held on this cluster.
|
||||
- name: max_enqueue_time
|
||||
exp: org_apache_activemq_Broker_MaxEnqueueTime.max(['cluster'])
|
||||
|
|
@ -0,0 +1,79 @@
|
|||
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
# contributor license agreements. See the NOTICE file distributed with
|
||||
# this work for additional information regarding copyright ownership.
|
||||
# The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
# (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
# This will parse a textual representation of a duration. The formats
|
||||
# accepted are based on the ISO-8601 duration format {@code PnDTnHnMn.nS}
|
||||
# with days considered to be exactly 24 hours.
|
||||
# <p>
|
||||
# Examples:
|
||||
# <pre>
|
||||
# "PT20.345S" -- parses as "20.345 seconds"
|
||||
# "PT15M" -- parses as "15 minutes" (where a minute is 60 seconds)
|
||||
# "PT10H" -- parses as "10 hours" (where an hour is 3600 seconds)
|
||||
# "P2D" -- parses as "2 days" (where a day is 24 hours or 86400 seconds)
|
||||
# "P2DT3H4M" -- parses as "2 days, 3 hours and 4 minutes"
|
||||
# "P-6H3M" -- parses as "-6 hours and +3 minutes"
|
||||
# "-P6H3M" -- parses as "-6 hours and -3 minutes"
|
||||
# "-P-6H+3M" -- parses as "+6 hours and -3 minutes"
|
||||
# </pre>
|
||||
filter: "{ tags -> tags.job_name == 'activemq-monitoring' }" # The OpenTelemetry job name
|
||||
expSuffix: tag({tags -> tags.cluster = 'activemq::' + tags.cluster}).endpoint(['cluster'], ['destinationName'], Layer.ACTIVEMQ)
|
||||
metricPrefix: meter_activemq_destination
|
||||
metricsRules:
|
||||
# Number of producers attached to this destination.
|
||||
- name: producer_count
|
||||
exp: org_apache_activemq_Broker_ProducerCount.sum(['cluster','destinationName','destinationType'])
|
||||
# Number of consumers subscribed to this destination.
|
||||
- name: consumer_count
|
||||
exp: org_apache_activemq_Broker_ConsumerCount.sum(['cluster','destinationName','destinationType'])
|
||||
# Number of consumers subscribed to the topics.
|
||||
- name: topic_consumer_count
|
||||
exp: org_apache_activemq_Broker_ConsumerCount.tagEqual('destinationType','Topic').sum(['cluster','destinationName'])
|
||||
# The number of messages that have not been acknowledged by a consumer.
|
||||
- name: queue_size
|
||||
exp: org_apache_activemq_Broker_QueueSize.sum(['cluster','destinationName','destinationType'])
|
||||
# Percentage of configured memory used by the destination.
|
||||
- name: memory_usage
|
||||
exp: org_apache_activemq_Broker_MemoryUsageByteCount.sum(['cluster','destinationName','destinationType'])
|
||||
# Percentage of configured memory used by the destination.
|
||||
- name: memory_percent_usage
|
||||
exp: org_apache_activemq_Broker_MemoryPercentUsage.sum(['cluster','destinationName','destinationType'])
|
||||
# The number of messages sent to the destination.
|
||||
- name: enqueue_count
|
||||
exp: org_apache_activemq_Broker_EnqueueCount.sum(['cluster','destinationName','destinationType'])
|
||||
# The number of messages the destination has delivered to consumers.
|
||||
- name: dequeue_count
|
||||
exp: org_apache_activemq_Broker_DequeueCount.sum(['cluster','destinationName','destinationType'])
|
||||
# The average time a message was held on this destination.
|
||||
- name: average_enqueue_time
|
||||
exp: org_apache_activemq_Broker_AverageEnqueueTime.sum(['cluster','destinationName','destinationType'])
|
||||
# The max time a message was held on this destination.
|
||||
- name: max_enqueue_time
|
||||
exp: org_apache_activemq_Broker_MaxEnqueueTime.sum(['cluster','destinationName','destinationType'])
|
||||
# Number of messages that has been delivered to consumers.
|
||||
- name: dispatch_count
|
||||
exp: org_apache_activemq_Broker_DispatchCount.sum(['cluster','destinationName','destinationType'])
|
||||
# Number of messages that have been expired.
|
||||
- name: expired_count
|
||||
exp: org_apache_activemq_Broker_ExpiredCount.sum(['cluster','destinationName','destinationType'])
|
||||
# Number of messages that have been dispatched to but not acknowledged by consumers.
|
||||
- name: inflight_count
|
||||
exp: org_apache_activemq_Broker_InFlightCount.sum(['cluster','destinationName','destinationType'])
|
||||
# Average message size on this destination.
|
||||
- name: average_message_size
|
||||
exp: org_apache_activemq_Broker_AverageMessageSize.avg(['cluster','destinationName','destinationType'])
|
||||
# Max message size on this destination.
|
||||
- name: max_message_size
|
||||
exp: org_apache_activemq_Broker_MaxMessageSize.max(['cluster','destinationName','destinationType'])
|
||||
|
|
@ -0,0 +1,355 @@
|
|||
[
|
||||
{
|
||||
"id": "ActiveMQ-Broker",
|
||||
"configuration": {
|
||||
"children": [
|
||||
{
|
||||
"x": 6,
|
||||
"y": 0,
|
||||
"w": 6,
|
||||
"h": 9,
|
||||
"i": "0",
|
||||
"type": "Widget",
|
||||
"expressions": [
|
||||
"latest(meter_activemq_broker_state)"
|
||||
],
|
||||
"graph": {
|
||||
"type": "Table",
|
||||
"showTableValues": true,
|
||||
"tableHeaderCol1": "",
|
||||
"tableHeaderCol2": ""
|
||||
},
|
||||
"widget": {
|
||||
"name": "SlaveBroker",
|
||||
"title": "Slave Broker",
|
||||
"tips": "If slave broker then 1 else 0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 6,
|
||||
"h": 9,
|
||||
"i": "1",
|
||||
"type": "Widget",
|
||||
"expressions": [
|
||||
"latest(meter_activemq_broker_uptime)/1000/60/60"
|
||||
],
|
||||
"graph": {
|
||||
"type": "Table",
|
||||
"showTableValues": true,
|
||||
"tableHeaderCol2": ""
|
||||
},
|
||||
"metricConfig": [
|
||||
{
|
||||
"unit": "day",
|
||||
"label": "Uptime"
|
||||
}
|
||||
],
|
||||
"widget": {
|
||||
"name": "BrokerUptime",
|
||||
"title": "Uptime",
|
||||
"tips": "Uptime of the broker in day."
|
||||
}
|
||||
},
|
||||
{
|
||||
"x": 12,
|
||||
"y": 0,
|
||||
"w": 12,
|
||||
"h": 9,
|
||||
"i": "2",
|
||||
"type": "Widget",
|
||||
"expressions": [
|
||||
"meter_activemq_broker_current_connentions"
|
||||
],
|
||||
"graph": {
|
||||
"type": "Area",
|
||||
"opacity": 0.4,
|
||||
"showXAxis": true,
|
||||
"showYAxis": true
|
||||
},
|
||||
"metricConfig": [
|
||||
{
|
||||
"label": "Connections"
|
||||
}
|
||||
],
|
||||
"widget": {
|
||||
"name": "Connections",
|
||||
"title": "Connections",
|
||||
"tips": "The number of clients connected to the broker currently."
|
||||
}
|
||||
},
|
||||
{
|
||||
"x": 12,
|
||||
"y": 9,
|
||||
"w": 6,
|
||||
"h": 9,
|
||||
"i": "3",
|
||||
"type": "Widget",
|
||||
"expressions": [
|
||||
"aggregate_labels(meter_activemq_broker_producer_count,sum)"
|
||||
],
|
||||
"graph": {
|
||||
"type": "Bar",
|
||||
"showBackground": true
|
||||
},
|
||||
"widget": {
|
||||
"name": "ProducerCount",
|
||||
"title": "Increased Producer Count",
|
||||
"tips": "The number of producers currently attached to the broker."
|
||||
},
|
||||
"metricConfig": [
|
||||
{
|
||||
"label": "Producer"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"x": 18,
|
||||
"y": 9,
|
||||
"w": 6,
|
||||
"h": 9,
|
||||
"i": "4",
|
||||
"type": "Widget",
|
||||
"expressions": [
|
||||
"aggregate_labels(meter_activemq_broker_consumer_count,sum)"
|
||||
],
|
||||
"graph": {
|
||||
"type": "Bar",
|
||||
"showBackground": true
|
||||
},
|
||||
"widget": {
|
||||
"name": "ConsumerCount",
|
||||
"title": "Increased Consumer Count",
|
||||
"tips": "The number of consumers consuming messages from the broker."
|
||||
},
|
||||
"metricConfig": [
|
||||
{
|
||||
"label": "Consumer"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"x": 0,
|
||||
"y": 18,
|
||||
"w": 12,
|
||||
"h": 10,
|
||||
"i": "5",
|
||||
"type": "Widget",
|
||||
"expressions": [
|
||||
"aggregate_labels(meter_activemq_broker_enqueue_count,sum)",
|
||||
"aggregate_labels(meter_activemq_broker_dequeue_count,sum)"
|
||||
],
|
||||
"graph": {
|
||||
"type": "Area",
|
||||
"opacity": 0.4,
|
||||
"showXAxis": true,
|
||||
"showYAxis": true
|
||||
},
|
||||
"metricConfig": [
|
||||
{
|
||||
"label": "Enqueue"
|
||||
},
|
||||
{
|
||||
"label": "Dequeue"
|
||||
}
|
||||
],
|
||||
"widget": {
|
||||
"name": "EnqueueDequeueCount",
|
||||
"title": "Enqueue/Dequeue Count",
|
||||
"tips": "The total number of messages sent to the broker & The total number of messages the broker has delivered to consumers."
|
||||
}
|
||||
},
|
||||
{
|
||||
"x": 0,
|
||||
"y": 28,
|
||||
"w": 8,
|
||||
"h": 11,
|
||||
"i": "6",
|
||||
"type": "Widget",
|
||||
"expressions": [
|
||||
"aggregate_labels(meter_activemq_broker_memory_usage,sum)/1024/1024"
|
||||
],
|
||||
"graph": {
|
||||
"type": "Area",
|
||||
"opacity": 0.4,
|
||||
"showXAxis": true,
|
||||
"showYAxis": true
|
||||
},
|
||||
"metricConfig": [
|
||||
{
|
||||
"label": "Memory Usage",
|
||||
"unit": "MB"
|
||||
}
|
||||
],
|
||||
"widget": {
|
||||
"name": "MemoryUsage",
|
||||
"title": "Memory Usage(MB)",
|
||||
"tips": "Memory used by undelivered messages in the broker."
|
||||
}
|
||||
},
|
||||
{
|
||||
"x": 8,
|
||||
"y": 28,
|
||||
"w": 8,
|
||||
"h": 11,
|
||||
"i": "7",
|
||||
"type": "Widget",
|
||||
"expressions": [
|
||||
"aggregate_labels(meter_activemq_broker_memory_limit,sum)/1024/1024/1024",
|
||||
"aggregate_labels(meter_activemq_broker_store_limit,sum)/1024/1024/1024",
|
||||
"aggregate_labels(meter_activemq_broker_temp_limit,sum)/1024/1024/1024"
|
||||
],
|
||||
"metricConfig": [
|
||||
{
|
||||
"unit": "GB",
|
||||
"label": "Memory Usage Limit"
|
||||
},
|
||||
{
|
||||
"label": "Store Usage Limit",
|
||||
"unit": "GB"
|
||||
},
|
||||
{
|
||||
"unit": "GB",
|
||||
"label": "Temp Usage Limit"
|
||||
}
|
||||
],
|
||||
"graph": {
|
||||
"type": "Area",
|
||||
"opacity": 0.4,
|
||||
"showXAxis": true,
|
||||
"showYAxis": true
|
||||
},
|
||||
"widget": {
|
||||
"name": "UsageLimit",
|
||||
"title": "Usage Limit(GB)",
|
||||
"tips": "Disk limit for messages."
|
||||
}
|
||||
},
|
||||
{
|
||||
"x": 16,
|
||||
"y": 28,
|
||||
"w": 8,
|
||||
"h": 11,
|
||||
"i": "8",
|
||||
"type": "Widget",
|
||||
"expressions": [
|
||||
"aggregate_labels(meter_activemq_broker_average_message_size,avg)",
|
||||
"aggregate_labels(meter_activemq_broker_max_message_size,max)"
|
||||
],
|
||||
"metricConfig": [
|
||||
{
|
||||
"unit": "bytes",
|
||||
"label": "Average Message Size"
|
||||
},
|
||||
{
|
||||
"label": "Max Message Size",
|
||||
"unit": "bytes"
|
||||
}
|
||||
],
|
||||
"graph": {
|
||||
"type": "Area",
|
||||
"opacity": 0.4,
|
||||
"showXAxis": true,
|
||||
"showYAxis": true
|
||||
},
|
||||
"widget": {
|
||||
"name": "MessageSize",
|
||||
"title": "Message Size",
|
||||
"tips": "Average/Max message size on this broker."
|
||||
}
|
||||
},
|
||||
{
|
||||
"x": 0,
|
||||
"y": 9,
|
||||
"w": 6,
|
||||
"h": 9,
|
||||
"i": "9",
|
||||
"type": "Widget",
|
||||
"expressions": [
|
||||
"latest(aggregate_labels(meter_activemq_broker_current_producer_count,sum))"
|
||||
],
|
||||
"graph": {
|
||||
"type": "Card",
|
||||
"fontSize": 24,
|
||||
"textAlign": "center",
|
||||
"showUnit": true
|
||||
},
|
||||
"widget": {
|
||||
"name": "CurrentProducerCount",
|
||||
"title": "Current Producer Count",
|
||||
"tips": "The number of producers currently attached to the broker."
|
||||
},
|
||||
"metricConfig": [
|
||||
{
|
||||
"label": "Current Producers"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"x": 6,
|
||||
"y": 9,
|
||||
"w": 6,
|
||||
"h": 9,
|
||||
"i": "10",
|
||||
"type": "Widget",
|
||||
"expressions": [
|
||||
"latest(aggregate_labels(meter_activemq_broker_current_consumer_count,sum))"
|
||||
],
|
||||
"graph": {
|
||||
"type": "Card",
|
||||
"fontSize": 24,
|
||||
"textAlign": "center",
|
||||
"showUnit": true
|
||||
},
|
||||
"widget": {
|
||||
"name": "CurrentConsumerCount",
|
||||
"title": "Current Consumer Count",
|
||||
"tips": "The number of consumers consuming messages from the broker."
|
||||
},
|
||||
"metricConfig": [
|
||||
{
|
||||
"label": "Current Consumers"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"x": 12,
|
||||
"y": 18,
|
||||
"w": 12,
|
||||
"h": 10,
|
||||
"i": "11",
|
||||
"type": "Widget",
|
||||
"expressions": [
|
||||
"aggregate_labels(meter_activemq_broker_enqueue_rate,avg)",
|
||||
"aggregate_labels(meter_activemq_broker_dequeue_rate,avg)"
|
||||
],
|
||||
"graph": {
|
||||
"type": "Area",
|
||||
"opacity": 0.4,
|
||||
"showXAxis": true,
|
||||
"showYAxis": true
|
||||
},
|
||||
"widget": {
|
||||
"name": "EnqueueDequeueRate",
|
||||
"title": "Enqueue/Dequeue Rate",
|
||||
"tips": "Enqueue/Dequeue Rate per second."
|
||||
},
|
||||
"metricConfig": [
|
||||
{
|
||||
"label": "Enqueue"
|
||||
},
|
||||
{
|
||||
"label": "Dequeue"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"layer": "ACTIVEMQ",
|
||||
"entity": "ServiceInstance",
|
||||
"name": "ActiveMQ-Broker",
|
||||
"id": "ActiveMQ-Broker",
|
||||
"isRoot": false
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
@ -0,0 +1,509 @@
|
|||
[
|
||||
{
|
||||
"id": "ActiveMQ-Cluster",
|
||||
"configuration": {
|
||||
"children": [
|
||||
{
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 24,
|
||||
"h": 42,
|
||||
"i": "0",
|
||||
"type": "Tab",
|
||||
"children": [
|
||||
{
|
||||
"name": "Overview",
|
||||
"children": [
|
||||
{
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 12,
|
||||
"h": 11,
|
||||
"i": "0",
|
||||
"type": "Widget",
|
||||
"expressions": [
|
||||
"meter_activemq_cluster_system_load_average/10000"
|
||||
],
|
||||
"graph": {
|
||||
"type": "Bar",
|
||||
"showBackground": true
|
||||
},
|
||||
"metricConfig": [
|
||||
{
|
||||
"label": "System Load Average"
|
||||
}
|
||||
],
|
||||
"widget": {
|
||||
"name": "SystemLoadAverage",
|
||||
"title": "System Load Average",
|
||||
"tips": "The average system load, range:[0, 100]."
|
||||
}
|
||||
},
|
||||
{
|
||||
"x": 12,
|
||||
"y": 0,
|
||||
"w": 12,
|
||||
"h": 11,
|
||||
"i": "1",
|
||||
"type": "Widget",
|
||||
"expressions": [
|
||||
"meter_activemq_cluster_thread_count"
|
||||
],
|
||||
"graph": {
|
||||
"type": "Area",
|
||||
"opacity": 0.4,
|
||||
"showXAxis": true,
|
||||
"showYAxis": true
|
||||
},
|
||||
"widget": {
|
||||
"name": "ThreadCount",
|
||||
"title": "Thread Count",
|
||||
"tips": "Threads currently used by the JVM."
|
||||
},
|
||||
"metricConfig": [
|
||||
{
|
||||
"label": "Thread Count"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"x": 0,
|
||||
"y": 11,
|
||||
"w": 4,
|
||||
"h": 9,
|
||||
"i": "2",
|
||||
"type": "Widget",
|
||||
"expressions": [
|
||||
"latest(aggregate_labels(meter_activemq_cluster_heap_memory_usage_init,sum))/1024/1024"
|
||||
],
|
||||
"graph": {
|
||||
"type": "Card",
|
||||
"fontSize": 24,
|
||||
"textAlign": "center",
|
||||
"showUnit": true
|
||||
},
|
||||
"metricConfig": [
|
||||
{
|
||||
"unit": "MB",
|
||||
"label": "Heap Memory(INIT)"
|
||||
}
|
||||
],
|
||||
"widget": {
|
||||
"name": "HeapMemoryInit",
|
||||
"title": "Heap Memory(INIT)",
|
||||
"tips": "The initial amount of heap memory available."
|
||||
}
|
||||
},
|
||||
{
|
||||
"x": 8,
|
||||
"y": 11,
|
||||
"w": 4,
|
||||
"h": 9,
|
||||
"i": "3",
|
||||
"type": "Widget",
|
||||
"expressions": [
|
||||
"latest(aggregate_labels(meter_activemq_cluster_heap_memory_usage_max,sum))/1024/1024"
|
||||
],
|
||||
"graph": {
|
||||
"type": "Card",
|
||||
"fontSize": 24,
|
||||
"textAlign": "center",
|
||||
"showUnit": true
|
||||
},
|
||||
"metricConfig": [
|
||||
{
|
||||
"unit": "MB",
|
||||
"label": "Heap Memory(MAX)"
|
||||
}
|
||||
],
|
||||
"widget": {
|
||||
"name": "HeapMemoryMax",
|
||||
"title": "Heap Memory(MAX)",
|
||||
"tips": "The maximum possible size of the heap memory."
|
||||
}
|
||||
},
|
||||
{
|
||||
"x": 4,
|
||||
"y": 11,
|
||||
"w": 4,
|
||||
"h": 9,
|
||||
"i": "4",
|
||||
"type": "Widget",
|
||||
"expressions": [
|
||||
"latest(aggregate_labels(meter_activemq_cluster_heap_memory_usage_committed,sum))/1024/1024"
|
||||
],
|
||||
"graph": {
|
||||
"type": "Card",
|
||||
"fontSize": 24,
|
||||
"textAlign": "center",
|
||||
"showUnit": true
|
||||
},
|
||||
"metricConfig": [
|
||||
{
|
||||
"unit": "MB",
|
||||
"label": "Heap Memory(COMMITTED)"
|
||||
}
|
||||
],
|
||||
"widget": {
|
||||
"name": "HeapMemoryCommitted",
|
||||
"title": "Heap Memory(COMMITTED)",
|
||||
"tips": "The memory is guaranteed to be available for the JVM to use."
|
||||
}
|
||||
},
|
||||
{
|
||||
"x": 12,
|
||||
"y": 11,
|
||||
"w": 12,
|
||||
"h": 9,
|
||||
"i": "5",
|
||||
"type": "Widget",
|
||||
"expressions": [
|
||||
"meter_activemq_cluster_heap_memory_usage_used/1024/1024"
|
||||
],
|
||||
"graph": {
|
||||
"type": "Area",
|
||||
"opacity": 0.4,
|
||||
"showXAxis": true,
|
||||
"showYAxis": true
|
||||
},
|
||||
"metricConfig": [
|
||||
{
|
||||
"unit": "MB",
|
||||
"label": "Heap Memory(USED)"
|
||||
}
|
||||
],
|
||||
"widget": {
|
||||
"name": "HeapMemoryUsed",
|
||||
"title": "Heap Memory(USED)",
|
||||
"tips": "The amount of JVM heap memory currently in use."
|
||||
}
|
||||
},
|
||||
{
|
||||
"x": 0,
|
||||
"y": 31,
|
||||
"w": 6,
|
||||
"h": 11,
|
||||
"i": "8",
|
||||
"type": "Widget",
|
||||
"expressions": [
|
||||
"meter_activemq_cluster_enqueue_rate"
|
||||
],
|
||||
"graph": {
|
||||
"type": "Area",
|
||||
"opacity": 0.4,
|
||||
"showXAxis": true,
|
||||
"showYAxis": true
|
||||
},
|
||||
"widget": {
|
||||
"name": "EnqueueRate",
|
||||
"title": "Enqueue Count/s",
|
||||
"tips": "Number of messages that have been sent to the cluster per second."
|
||||
},
|
||||
"metricConfig": [
|
||||
{
|
||||
"label": "Enqueue Rate"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"x": 6,
|
||||
"y": 31,
|
||||
"w": 6,
|
||||
"h": 11,
|
||||
"i": "9",
|
||||
"type": "Widget",
|
||||
"expressions": [
|
||||
"meter_activemq_cluster_dequeue_rate"
|
||||
],
|
||||
"graph": {
|
||||
"type": "Area",
|
||||
"opacity": 0.4,
|
||||
"showXAxis": true,
|
||||
"showYAxis": true
|
||||
},
|
||||
"widget": {
|
||||
"name": "DequeueRate",
|
||||
"title": "Dequeue Count/s",
|
||||
"tips": "Number of messages that have been acknowledged or discarded on the cluster per second."
|
||||
},
|
||||
"metricConfig": [
|
||||
{
|
||||
"label": "Dequeue Rate"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"x": 12,
|
||||
"y": 31,
|
||||
"w": 6,
|
||||
"h": 11,
|
||||
"i": "10",
|
||||
"type": "Widget",
|
||||
"expressions": [
|
||||
"meter_activemq_cluster_dispatch_rate"
|
||||
],
|
||||
"graph": {
|
||||
"type": "Area",
|
||||
"opacity": 0.4,
|
||||
"showXAxis": true,
|
||||
"showYAxis": true
|
||||
},
|
||||
"widget": {
|
||||
"name": "DispatchRate",
|
||||
"title": "Dispatch Count/s",
|
||||
"tips": "Number of messages that has been delivered to consumers per second."
|
||||
},
|
||||
"metricConfig": [
|
||||
{
|
||||
"label": "Dispatch Rate"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"x": 18,
|
||||
"y": 31,
|
||||
"w": 6,
|
||||
"h": 11,
|
||||
"i": "11",
|
||||
"type": "Widget",
|
||||
"expressions": [
|
||||
"meter_activemq_cluster_expired_rate"
|
||||
],
|
||||
"graph": {
|
||||
"type": "Area",
|
||||
"opacity": 0.4,
|
||||
"showXAxis": true,
|
||||
"showYAxis": true
|
||||
},
|
||||
"widget": {
|
||||
"name": "ExpiredRate",
|
||||
"title": "Expired Count/s",
|
||||
"tips": "Number of messages that have been expired per second."
|
||||
},
|
||||
"metricConfig": [
|
||||
{
|
||||
"label": "Expired Rate"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"x": 0,
|
||||
"y": 42,
|
||||
"w": 12,
|
||||
"h": 12,
|
||||
"i": "12",
|
||||
"type": "Widget",
|
||||
"expressions": [
|
||||
"meter_activemq_cluster_average_enqueue_time/1000"
|
||||
],
|
||||
"graph": {
|
||||
"type": "Area",
|
||||
"opacity": 0.4,
|
||||
"showXAxis": true,
|
||||
"showYAxis": true
|
||||
},
|
||||
"widget": {
|
||||
"name": "AverageEnqueueTime",
|
||||
"title": "Average Enqueue Time(s)",
|
||||
"tips": "The average time a message was held on this cluster."
|
||||
},
|
||||
"metricConfig": [
|
||||
{
|
||||
"label": "Max Enqueue Time",
|
||||
"unit": "s"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"x": 6,
|
||||
"y": 20,
|
||||
"w": 6,
|
||||
"h": 11,
|
||||
"i": "13",
|
||||
"type": "Widget",
|
||||
"expressions": [
|
||||
"view_as_seq(meter_activemq_cluster_gc_g1_old_collection_count,meter_activemq_cluster_gc_parallel_old_collection_count)"
|
||||
],
|
||||
"graph": {
|
||||
"type": "Bar",
|
||||
"showBackground": true
|
||||
},
|
||||
"widget": {
|
||||
"name": "GCOldCollectionCount",
|
||||
"title": "GC Old Collection Count",
|
||||
"tips": "The GC count of Old Generation."
|
||||
}
|
||||
},
|
||||
{
|
||||
"x": 0,
|
||||
"y": 20,
|
||||
"w": 6,
|
||||
"h": 11,
|
||||
"i": "14",
|
||||
"type": "Widget",
|
||||
"expressions": [
|
||||
"view_as_seq(meter_activemq_cluster_gc_g1_young_collection_count,meter_activemq_cluster_gc_parallel_young_collection_count)"
|
||||
],
|
||||
"graph": {
|
||||
"type": "Bar",
|
||||
"showBackground": true
|
||||
},
|
||||
"widget": {
|
||||
"name": "GCYoungCollectionCount",
|
||||
"title": "GC Young Collection Count",
|
||||
"tips": "The GC count of Young Generation."
|
||||
}
|
||||
},
|
||||
{
|
||||
"x": 18,
|
||||
"y": 20,
|
||||
"w": 6,
|
||||
"h": 11,
|
||||
"i": "15",
|
||||
"type": "Widget",
|
||||
"expressions": [
|
||||
"view_as_seq(meter_activemq_cluster_gc_g1_old_collection_time,meter_activemq_cluster_gc_parallel_old_collection_time)"
|
||||
],
|
||||
"graph": {
|
||||
"type": "Area",
|
||||
"opacity": 0.4,
|
||||
"showXAxis": true,
|
||||
"showYAxis": true
|
||||
},
|
||||
"widget": {
|
||||
"name": "GCOldCollectionTime",
|
||||
"title": "GC Old Collection Time(ms)",
|
||||
"tips": "The GC time spent in Old Generation in milliseconds."
|
||||
}
|
||||
},
|
||||
{
|
||||
"x": 12,
|
||||
"y": 20,
|
||||
"w": 6,
|
||||
"h": 11,
|
||||
"i": "16",
|
||||
"type": "Widget",
|
||||
"expressions": [
|
||||
"view_as_seq(meter_activemq_cluster_gc_g1_young_collection_time,meter_activemq_cluster_gc_parallel_young_collection_time)"
|
||||
],
|
||||
"graph": {
|
||||
"type": "Area",
|
||||
"opacity": 0.4,
|
||||
"showXAxis": true,
|
||||
"showYAxis": true
|
||||
},
|
||||
"widget": {
|
||||
"name": "GCYoungCollectionTime",
|
||||
"title": "GC Young Collection Time(ms)",
|
||||
"tips": "The GC time spent in Young Generation in milliseconds."
|
||||
}
|
||||
},
|
||||
{
|
||||
"x": 12,
|
||||
"y": 42,
|
||||
"w": 12,
|
||||
"h": 12,
|
||||
"i": "17",
|
||||
"type": "Widget",
|
||||
"graph": {
|
||||
"type": "Area",
|
||||
"opacity": 0.4,
|
||||
"showXAxis": true,
|
||||
"showYAxis": true
|
||||
},
|
||||
"expressions": [
|
||||
"meter_activemq_cluster_max_enqueue_time/1000"
|
||||
],
|
||||
"metricConfig": [
|
||||
{
|
||||
"label": "Max Enqueue Time",
|
||||
"unit": "s"
|
||||
}
|
||||
],
|
||||
"widget": {
|
||||
"name": "MaxEnqueueTime",
|
||||
"title": "Max Enqueue Time(s)",
|
||||
"tips": "The max time a message was held on this cluster."
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Broker",
|
||||
"children": [
|
||||
{
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 24,
|
||||
"h": 30,
|
||||
"i": "0",
|
||||
"type": "Widget",
|
||||
"graph": {
|
||||
"type": "InstanceList",
|
||||
"dashboardName": "ActiveMQ-Broker",
|
||||
"fontSize": 12
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Destination",
|
||||
"children": [
|
||||
{
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 15,
|
||||
"h": 32,
|
||||
"i": "0",
|
||||
"type": "Widget",
|
||||
"graph": {
|
||||
"type": "EndpointList",
|
||||
"dashboardName": "ActiveMQ-Destination",
|
||||
"fontSize": 12
|
||||
},
|
||||
"metricConfig": [
|
||||
{
|
||||
"label": "Enqueue"
|
||||
},
|
||||
{
|
||||
"label": "Dequeue"
|
||||
}
|
||||
],
|
||||
"widget": {
|
||||
"name": "DestinationList",
|
||||
"title": "Destination List"
|
||||
},
|
||||
"expressions": []
|
||||
},
|
||||
{
|
||||
"x": 15,
|
||||
"y": 0,
|
||||
"w": 9,
|
||||
"h": 32,
|
||||
"i": "1",
|
||||
"type": "Widget",
|
||||
"expressions": [
|
||||
"top_n(meter_activemq_destination_topic_consumer_count,10,des)"
|
||||
],
|
||||
"graph": {
|
||||
"type": "TopList",
|
||||
"color": "purple"
|
||||
},
|
||||
"widget": {
|
||||
"title": "Top10 Topic Consumer",
|
||||
"tips": "Top10 Topic Consumer"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"layer": "ACTIVEMQ",
|
||||
"entity": "Service",
|
||||
"name": "ActiveMQ-Cluster",
|
||||
"id": "ActiveMQ-Cluster",
|
||||
"isRoot": false
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
@ -0,0 +1,226 @@
|
|||
[
|
||||
{
|
||||
"id": "ActiveMQ-Destination",
|
||||
"configuration": {
|
||||
"children": [
|
||||
{
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 6,
|
||||
"h": 11,
|
||||
"i": "0",
|
||||
"type": "Widget",
|
||||
"expressions": [
|
||||
"meter_activemq_destination_producer_count"
|
||||
],
|
||||
"graph": {
|
||||
"type": "Line",
|
||||
"step": false,
|
||||
"smooth": false,
|
||||
"showSymbol": true,
|
||||
"showXAxis": true,
|
||||
"showYAxis": true
|
||||
},
|
||||
"widget": {
|
||||
"name": "ProducerCount",
|
||||
"title": "Producer Count",
|
||||
"tips": "Number of producers attached to this destination."
|
||||
},
|
||||
"metricConfig": [
|
||||
{
|
||||
"label": "Producer"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"x": 6,
|
||||
"y": 0,
|
||||
"w": 6,
|
||||
"h": 11,
|
||||
"i": "1",
|
||||
"type": "Widget",
|
||||
"expressions": [
|
||||
"meter_activemq_destination_consumer_count"
|
||||
],
|
||||
"graph": {
|
||||
"type": "Line",
|
||||
"step": false,
|
||||
"smooth": false,
|
||||
"showSymbol": true,
|
||||
"showXAxis": true,
|
||||
"showYAxis": true
|
||||
},
|
||||
"widget": {
|
||||
"name": "ConsumerCount",
|
||||
"title": "Consumer Count",
|
||||
"tips": "Number of consumers subscribed to this destination."
|
||||
},
|
||||
"metricConfig": [
|
||||
{
|
||||
"label": "Consumer"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"x": 0,
|
||||
"y": 11,
|
||||
"w": 12,
|
||||
"h": 11,
|
||||
"i": "3",
|
||||
"type": "Widget",
|
||||
"expressions": [
|
||||
"meter_activemq_destination_queue_size"
|
||||
],
|
||||
"graph": {
|
||||
"type": "Area",
|
||||
"opacity": 0.4,
|
||||
"showXAxis": true,
|
||||
"showYAxis": true
|
||||
},
|
||||
"metricConfig": [
|
||||
{
|
||||
"label": "Queue Size"
|
||||
}
|
||||
],
|
||||
"widget": {
|
||||
"name": "QueueSize",
|
||||
"title": "Queue Size",
|
||||
"tips": "The number of messages that have not been acknowledged by a consumer."
|
||||
}
|
||||
},
|
||||
{
|
||||
"x": 12,
|
||||
"y": 0,
|
||||
"w": 12,
|
||||
"h": 11,
|
||||
"i": "4",
|
||||
"type": "Widget",
|
||||
"expressions": [
|
||||
"meter_activemq_destination_memory_usage/1024/1024"
|
||||
],
|
||||
"graph": {
|
||||
"type": "Area",
|
||||
"opacity": 0.4,
|
||||
"showXAxis": true,
|
||||
"showYAxis": true
|
||||
},
|
||||
"metricConfig": [
|
||||
{
|
||||
"label": "Memory Usage",
|
||||
"unit": "MB"
|
||||
}
|
||||
],
|
||||
"widget": {
|
||||
"name": "MemoyUsage",
|
||||
"title": "Memoy Usage",
|
||||
"tips": "Memory used by undelivered messages in bytes."
|
||||
}
|
||||
},
|
||||
{
|
||||
"x": 12,
|
||||
"y": 11,
|
||||
"w": 12,
|
||||
"h": 11,
|
||||
"i": "5",
|
||||
"type": "Widget",
|
||||
"expressions": [
|
||||
"meter_activemq_destination_enqueue_count",
|
||||
"meter_activemq_destination_dequeue_count",
|
||||
"meter_activemq_destination_dispatch_count",
|
||||
"meter_activemq_destination_expired_count",
|
||||
"meter_activemq_destination_inflight_count"
|
||||
],
|
||||
"graph": {
|
||||
"type": "Area",
|
||||
"opacity": 0.4,
|
||||
"showXAxis": true,
|
||||
"showYAxis": true
|
||||
},
|
||||
"widget": {
|
||||
"name": "MessageCount",
|
||||
"title": "Message Count",
|
||||
"tips": "The count of enqueue/dequeue/dispatch/expired/inflignt messages."
|
||||
},
|
||||
"metricConfig": [
|
||||
{
|
||||
"label": "Enqueue"
|
||||
},
|
||||
{
|
||||
"label": "Dequeue"
|
||||
},
|
||||
{
|
||||
"label": "Dispatch"
|
||||
},
|
||||
{
|
||||
"label": "Expired"
|
||||
},
|
||||
{
|
||||
"label": "Inflight"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"x": 0,
|
||||
"y": 22,
|
||||
"w": 12,
|
||||
"h": 11,
|
||||
"i": "7",
|
||||
"type": "Widget",
|
||||
"expressions": [
|
||||
"meter_activemq_destination_average_enqueue_time/1000"
|
||||
],
|
||||
"graph": {
|
||||
"type": "Area",
|
||||
"opacity": 0.4,
|
||||
"showXAxis": true,
|
||||
"showYAxis": true
|
||||
},
|
||||
"metricConfig": [
|
||||
{
|
||||
"label": "Max Enqueue Time",
|
||||
"unit": "s"
|
||||
}
|
||||
],
|
||||
"widget": {
|
||||
"name": "AverageEnqueueTime",
|
||||
"title": "Average Enqueue Time(s)",
|
||||
"tips": "The average time a message was held on this destination."
|
||||
}
|
||||
},
|
||||
{
|
||||
"x": 12,
|
||||
"y": 22,
|
||||
"w": 12,
|
||||
"h": 11,
|
||||
"i": "8",
|
||||
"type": "Widget",
|
||||
"expressions": [
|
||||
"meter_activemq_destination_max_enqueue_time/1000"
|
||||
],
|
||||
"graph": {
|
||||
"type": "Area",
|
||||
"opacity": 0.4,
|
||||
"showXAxis": true,
|
||||
"showYAxis": true
|
||||
},
|
||||
"metricConfig": [
|
||||
{
|
||||
"unit": "s",
|
||||
"label": "Max Enqueue Time"
|
||||
}
|
||||
],
|
||||
"widget": {
|
||||
"name": "MaxEnqueueTime",
|
||||
"title": "Max Enqueue Time(s)",
|
||||
"tips": "The max time a message was held on this destination."
|
||||
}
|
||||
}
|
||||
],
|
||||
"layer": "ACTIVEMQ",
|
||||
"entity": "Endpoint",
|
||||
"name": "ActiveMQ-Destination",
|
||||
"id": "ActiveMQ-Destination",
|
||||
"isRoot": false
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
[
|
||||
{
|
||||
"id": "ActiveMQ-Root",
|
||||
"configuration": {
|
||||
"children": [
|
||||
{
|
||||
"x": 0,
|
||||
"y": 3,
|
||||
"w": 24,
|
||||
"h": 29,
|
||||
"i": "0",
|
||||
"type": "Widget",
|
||||
"graph": {
|
||||
"type": "ServiceList",
|
||||
"dashboardName": "ActiveMQ-Cluster",
|
||||
"fontSize": 12,
|
||||
"showXAxis": false,
|
||||
"showYAxis": false,
|
||||
"showGroup": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 24,
|
||||
"h": 3,
|
||||
"i": "1",
|
||||
"type": "Text",
|
||||
"graph": {
|
||||
"fontColor": "theme",
|
||||
"backgroundColor": "theme",
|
||||
"content": "Provide ActiveMQ monitoring through OpenTelemetry's Prometheus Receiver",
|
||||
"fontSize": 14,
|
||||
"textAlign": "left",
|
||||
"url": "https://skywalking.apache.org/docs/main/next/en/setup/backend/backend-activemq-monitoring/"
|
||||
}
|
||||
}
|
||||
],
|
||||
"layer": "ACTIVEMQ",
|
||||
"entity": "All",
|
||||
"name": "ActiveMQ-Root",
|
||||
"id": "ActiveMQ-Root",
|
||||
"isRoot": true
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
@ -218,6 +218,11 @@ menus:
|
|||
description: Provide RocketMQ monitoring through OpenTelemetry's Prometheus Receiver.
|
||||
documentLink: https://skywalking.apache.org/docs/main/next/en/setup/backend/backend-rocketmq-monitoring/
|
||||
i18nKey: mq_rocketmq
|
||||
- title: ActiveMQ
|
||||
layer: ACTIVEMQ
|
||||
description: Provide ActiveMQ monitoring through OpenTelemetry's Prometheus Receiver.
|
||||
documentLink: https://skywalking.apache.org/docs/main/next/en/setup/backend/backend-activemq-monitoring/
|
||||
i18nKey: mq_activemq
|
||||
- title: Self Observability
|
||||
icon: self_observability
|
||||
description: Self Observability provides the observabilities for running components and servers from the SkyWalking ecosystem.
|
||||
|
|
|
|||
|
|
@ -0,0 +1,133 @@
|
|||
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
# contributor license agreements. See the NOTICE file distributed with
|
||||
# this work for additional information regarding copyright ownership.
|
||||
# The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
# (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
# This file is used to show how to write configuration files and can be used to test.
|
||||
|
||||
cases:
|
||||
# service cases
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql service ls
|
||||
expected: expected/service.yml
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_activemq_cluster_system_load_average --service-name=activemq::activemq-cluster
|
||||
expected: expected/metrics-has-value-label-serviceinstanceid.yml
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_activemq_cluster_thread_count --service-name=activemq::activemq-cluster
|
||||
expected: expected/metrics-has-value-label-serviceinstanceid.yml
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_activemq_cluster_heap_memory_usage_init --service-name=activemq::activemq-cluster
|
||||
expected: expected/metrics-has-value-label-serviceinstanceid.yml
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_activemq_cluster_heap_memory_usage_committed --service-name=activemq::activemq-cluster
|
||||
expected: expected/metrics-has-value-label-serviceinstanceid.yml
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_activemq_cluster_heap_memory_usage_used --service-name=activemq::activemq-cluster
|
||||
expected: expected/metrics-has-value-label-serviceinstanceid.yml
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_activemq_cluster_heap_memory_usage_max --service-name=activemq::activemq-cluster
|
||||
expected: expected/metrics-has-value-label-serviceinstanceid.yml
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_activemq_cluster_gc_g1_old_collection_count --service-name=activemq::activemq-cluster
|
||||
expected: expected/metrics-has-value-label-serviceinstanceid.yml
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_activemq_cluster_gc_g1_young_collection_count --service-name=activemq::activemq-cluster
|
||||
expected: expected/metrics-has-value-label-serviceinstanceid.yml
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_activemq_cluster_gc_g1_old_collection_time --service-name=activemq::activemq-cluster
|
||||
expected: expected/metrics-has-value-label-serviceinstanceid.yml
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_activemq_cluster_gc_g1_young_collection_time --service-name=activemq::activemq-cluster
|
||||
expected: expected/metrics-has-value-label-serviceinstanceid.yml
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_activemq_cluster_enqueue_rate --service-name=activemq::activemq-cluster
|
||||
expected: expected/metrics-has-value.yml
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_activemq_cluster_dequeue_rate --service-name=activemq::activemq-cluster
|
||||
expected: expected/metrics-has-value.yml
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_activemq_cluster_dispatch_rate --service-name=activemq::activemq-cluster
|
||||
expected: expected/metrics-has-value.yml
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_activemq_cluster_expired_rate --service-name=activemq::activemq-cluster
|
||||
expected: expected/metrics-has-value.yml
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_activemq_cluster_average_enqueue_time --service-name=activemq::activemq-cluster
|
||||
expected: expected/metrics-has-value.yml
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_activemq_cluster_max_enqueue_time --service-name=activemq::activemq-cluster
|
||||
expected: expected/metrics-has-value.yml
|
||||
|
||||
# instance cases
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql instance ls --service-name=activemq::activemq-cluster
|
||||
expected: expected/instance.yml
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_activemq_broker_uptime --service-name=activemq::activemq-cluster --instance-name=activemq-broker
|
||||
expected: expected/metrics-has-value-label-serviceinstanceid.yml
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_activemq_broker_state --service-name=activemq::activemq-cluster --instance-name=activemq-broker
|
||||
expected: expected/metrics-has-value-label-serviceinstanceid.yml
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_activemq_broker_current_connentions --service-name=activemq::activemq-cluster --instance-name=activemq-broker
|
||||
expected: expected/metrics-has-value-label-serviceinstanceid.yml
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_activemq_broker_current_producer_count --service-name=activemq::activemq-cluster --instance-name=activemq-broker
|
||||
expected: expected/metrics-has-value-label-serviceinstanceid.yml
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_activemq_broker_current_consumer_count --service-name=activemq::activemq-cluster --instance-name=activemq-broker
|
||||
expected: expected/metrics-has-value-label-serviceinstanceid.yml
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_activemq_broker_producer_count --service-name=activemq::activemq-cluster --instance-name=activemq-broker
|
||||
expected: expected/metrics-has-value-label-serviceinstanceid.yml
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_activemq_broker_consumer_count --service-name=activemq::activemq-cluster --instance-name=activemq-broker
|
||||
expected: expected/metrics-has-value-label-serviceinstanceid.yml
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_activemq_broker_enqueue_count --service-name=activemq::activemq-cluster --instance-name=activemq-broker
|
||||
expected: expected/metrics-has-value-label-serviceinstanceid.yml
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_activemq_broker_dequeue_count --service-name=activemq::activemq-cluster --instance-name=activemq-broker
|
||||
expected: expected/metrics-has-value-label-serviceinstanceid.yml
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_activemq_broker_enqueue_rate --service-name=activemq::activemq-cluster --instance-name=activemq-broker
|
||||
expected: expected/metrics-has-value-label-serviceinstanceid.yml
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_activemq_broker_dequeue_rate --service-name=activemq::activemq-cluster --instance-name=activemq-broker
|
||||
expected: expected/metrics-has-value-label-serviceinstanceid.yml
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_activemq_broker_memory_percent_usage --service-name=activemq::activemq-cluster --instance-name=activemq-broker
|
||||
expected: expected/metrics-has-value-label-serviceinstanceid.yml
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_activemq_broker_memory_usage --service-name=activemq::activemq-cluster --instance-name=activemq-broker
|
||||
expected: expected/metrics-has-value-label-serviceinstanceid.yml
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_activemq_broker_memory_limit --service-name=activemq::activemq-cluster --instance-name=activemq-broker
|
||||
expected: expected/metrics-has-value-label-serviceinstanceid.yml
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_activemq_broker_store_percent_usage --service-name=activemq::activemq-cluster --instance-name=activemq-broker
|
||||
expected: expected/metrics-has-value-label-serviceinstanceid.yml
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_activemq_broker_store_limit --service-name=activemq::activemq-cluster --instance-name=activemq-broker
|
||||
expected: expected/metrics-has-value-label-serviceinstanceid.yml
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_activemq_broker_temp_percent_usage --service-name=activemq::activemq-cluster --instance-name=activemq-broker
|
||||
expected: expected/metrics-has-value-label-serviceinstanceid.yml
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_activemq_broker_temp_limit --service-name=activemq::activemq-cluster --instance-name=activemq-broker
|
||||
expected: expected/metrics-has-value-label-serviceinstanceid.yml
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_activemq_broker_average_message_size --service-name=activemq::activemq-cluster --instance-name=activemq-broker
|
||||
expected: expected/metrics-has-value-label-serviceinstanceid.yml
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_activemq_broker_max_message_size --service-name=activemq::activemq-cluster --instance-name=activemq-broker
|
||||
expected: expected/metrics-has-value-label-serviceinstanceid.yml
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_activemq_broker_queue_size --service-name=activemq::activemq-cluster --instance-name=activemq-broker
|
||||
expected: expected/metrics-has-value-label-destinationname.yml
|
||||
|
||||
# endpoint cases
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql endpoint ls --service-name=activemq::activemq-cluster
|
||||
expected: expected/endpoint.yml
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_activemq_destination_producer_count --service-name=activemq::activemq-cluster --endpoint-name=testQueue
|
||||
expected: expected/metrics-has-value-label-destinationtype.yml
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_activemq_destination_consumer_count --service-name=activemq::activemq-cluster --endpoint-name=testQueue
|
||||
expected: expected/metrics-has-value-label-destinationtype.yml
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_activemq_destination_topic_consumer_count --service-name=activemq::activemq-cluster --endpoint-name=testQueue
|
||||
expected: expected/metrics-has-value.yml
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_activemq_destination_queue_size --service-name=activemq::activemq-cluster --endpoint-name=testQueue
|
||||
expected: expected/metrics-has-value-label-destinationtype.yml
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_activemq_destination_memory_usage --service-name=activemq::activemq-cluster --endpoint-name=testQueue
|
||||
expected: expected/metrics-has-value-label-destinationtype.yml
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_activemq_destination_memory_percent_usage --service-name=activemq::activemq-cluster --endpoint-name=testQueue
|
||||
expected: expected/metrics-has-value-label-destinationtype.yml
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_activemq_destination_enqueue_count --service-name=activemq::activemq-cluster --endpoint-name=testQueue
|
||||
expected: expected/metrics-has-value-label-destinationtype.yml
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_activemq_destination_dequeue_count --service-name=activemq::activemq-cluster --endpoint-name=testQueue
|
||||
expected: expected/metrics-has-value-label-destinationtype.yml
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_activemq_destination_average_enqueue_time --service-name=activemq::activemq-cluster --endpoint-name=testQueue
|
||||
expected: expected/metrics-has-value-label-destinationtype.yml
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_activemq_destination_max_enqueue_time --service-name=activemq::activemq-cluster --endpoint-name=testQueue
|
||||
expected: expected/metrics-has-value-label-destinationtype.yml
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_activemq_destination_dispatch_count --service-name=activemq::activemq-cluster --endpoint-name=testQueue
|
||||
expected: expected/metrics-has-value-label-destinationtype.yml
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_activemq_destination_expired_count --service-name=activemq::activemq-cluster --endpoint-name=testQueue
|
||||
expected: expected/metrics-has-value-label-destinationtype.yml
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_activemq_destination_inflight_count --service-name=activemq::activemq-cluster --endpoint-name=testQueue
|
||||
expected: expected/metrics-has-value-label-destinationtype.yml
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_activemq_destination_average_message_size --service-name=activemq::activemq-cluster --endpoint-name=testQueue
|
||||
expected: expected/metrics-has-value-label-destinationtype.yml
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=meter_activemq_destination_max_message_size --service-name=activemq::activemq-cluster --endpoint-name=testQueue
|
||||
expected: expected/metrics-has-value-label-destinationtype.yml
|
||||
|
|
@ -0,0 +1,130 @@
|
|||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
(the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<!-- START SNIPPET: example -->
|
||||
<beans
|
||||
xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
|
||||
http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd">
|
||||
|
||||
<!-- Allows us to use system properties as variables in this configuration file -->
|
||||
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
|
||||
<property name="locations">
|
||||
<value>file:${activemq.conf}/credentials.properties</value>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<!--
|
||||
The <broker> element is used to configure the ActiveMQ broker.
|
||||
-->
|
||||
<broker xmlns="http://activemq.apache.org/schema/core" brokerName="${ACTIVEMQ_BROKER_NAME}" dataDirectory="${activemq.data}">
|
||||
|
||||
<destinationPolicy>
|
||||
<policyMap>
|
||||
<policyEntries>
|
||||
<policyEntry topic=">" >
|
||||
<!-- The constantPendingMessageLimitStrategy is used to prevent
|
||||
slow topic consumers to block producers and affect other consumers
|
||||
by limiting the number of messages that are retained
|
||||
For more information, see:
|
||||
|
||||
http://activemq.apache.org/slow-consumer-handling.html
|
||||
|
||||
-->
|
||||
<pendingMessageLimitStrategy>
|
||||
<constantPendingMessageLimitStrategy limit="1000"/>
|
||||
</pendingMessageLimitStrategy>
|
||||
</policyEntry>
|
||||
</policyEntries>
|
||||
</policyMap>
|
||||
</destinationPolicy>
|
||||
|
||||
|
||||
<!--
|
||||
The managementContext is used to configure how ActiveMQ is exposed in
|
||||
JMX. By default, ActiveMQ uses the MBean server that is started by
|
||||
the JVM. For more information, see:
|
||||
|
||||
http://activemq.apache.org/jmx.html
|
||||
-->
|
||||
<managementContext>
|
||||
<managementContext createConnector="false"/>
|
||||
</managementContext>
|
||||
|
||||
<!--
|
||||
Configure message persistence for the broker. The default persistence
|
||||
mechanism is the KahaDB store (identified by the kahaDB tag).
|
||||
For more information, see:
|
||||
|
||||
http://activemq.apache.org/persistence.html
|
||||
-->
|
||||
<persistenceAdapter>
|
||||
<kahaDB directory="${activemq.data}/kahadb"/>
|
||||
</persistenceAdapter>
|
||||
|
||||
|
||||
<!--
|
||||
The systemUsage controls the maximum amount of space the broker will
|
||||
use before disabling caching and/or slowing down producers. For more information, see:
|
||||
http://activemq.apache.org/producer-flow-control.html
|
||||
-->
|
||||
<systemUsage>
|
||||
<systemUsage>
|
||||
<memoryUsage>
|
||||
<memoryUsage percentOfJvmHeap="70" />
|
||||
</memoryUsage>
|
||||
<storeUsage>
|
||||
<storeUsage limit="100 gb"/>
|
||||
</storeUsage>
|
||||
<tempUsage>
|
||||
<tempUsage limit="50 gb"/>
|
||||
</tempUsage>
|
||||
</systemUsage>
|
||||
</systemUsage>
|
||||
|
||||
<!--
|
||||
The transport connectors expose ActiveMQ over a given protocol to
|
||||
clients and other brokers. For more information, see:
|
||||
|
||||
http://activemq.apache.org/configuring-transports.html
|
||||
-->
|
||||
<transportConnectors>
|
||||
<!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB -->
|
||||
<transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
|
||||
<transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
|
||||
<transportConnector name="stomp" uri="stomp://0.0.0.0:61613?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
|
||||
<transportConnector name="mqtt" uri="mqtt://0.0.0.0:1883?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
|
||||
<transportConnector name="ws" uri="ws://0.0.0.0:61614?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
|
||||
</transportConnectors>
|
||||
|
||||
<!-- destroy the spring context on shutdown to stop jetty -->
|
||||
<shutdownHooks>
|
||||
<bean xmlns="http://www.springframework.org/schema/beans" class="org.apache.activemq.hooks.SpringContextHook" />
|
||||
</shutdownHooks>
|
||||
|
||||
</broker>
|
||||
|
||||
<!--
|
||||
Enable web consoles, REST and Ajax APIs and demos
|
||||
The web consoles requires by default login, you can disable this in the jetty.xml file
|
||||
|
||||
Take a look at ${ACTIVEMQ_HOME}/conf/jetty.xml for more details
|
||||
-->
|
||||
<import resource="jetty.xml"/>
|
||||
|
||||
</beans>
|
||||
<!-- END SNIPPET: example -->
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
# contributor license agreements. See the NOTICE file distributed with
|
||||
# this work for additional information regarding copyright ownership.
|
||||
# The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
# (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
---
|
||||
startDelaySeconds: 10
|
||||
hostPort: amq:1616
|
||||
username: admin
|
||||
password: activemq
|
||||
ssl: false
|
||||
lowercaseOutputName: false
|
||||
lowercaseOutputLabelNames: false
|
||||
includeObjectNames: ["org.apache.activemq:*","java.lang:type=OperatingSystem","java.lang:type=GarbageCollector,*","java.lang:type=Threading","java.lang:type=Runtime","java.lang:type=Memory","java.lang:name=*"]
|
||||
excludeObjectNames: ["org.apache.activemq:type=ColumnFamily,*"]
|
||||
autoExcludeObjectNameAttributes: true
|
||||
excludeObjectNameAttributes:
|
||||
"java.lang:type=OperatingSystem":
|
||||
- "ObjectName"
|
||||
"java.lang:type=Runtime":
|
||||
- "ClassPath"
|
||||
- "SystemProperties"
|
||||
rules:
|
||||
- pattern: ".*"
|
||||
|
|
@ -0,0 +1,100 @@
|
|||
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
# contributor license agreements. See the NOTICE file distributed with
|
||||
# this work for additional information regarding copyright ownership.
|
||||
# The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
# (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
version: "2.1"
|
||||
|
||||
services:
|
||||
oap:
|
||||
extends:
|
||||
file: ../../script/docker-compose/base-compose.yml
|
||||
service: oap
|
||||
ports:
|
||||
- "12800:12800"
|
||||
networks:
|
||||
- e2e
|
||||
|
||||
amq:
|
||||
image: apache/activemq-classic:6.0.1
|
||||
hostname: amq
|
||||
ports:
|
||||
- "61616:61616"
|
||||
- "8161:8161"
|
||||
expose:
|
||||
- 1616
|
||||
volumes:
|
||||
- ./config/amq/activemq.xml:/opt/apache-activemq/conf/activemq.xml
|
||||
environment:
|
||||
ACTIVEMQ_SUNJMX_START: "-Dcom.sun.management.jmxremote.port=1616 -Dcom.sun.management.jmxremote.rmi.port=1616 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
|
||||
ACTIVEMQ_BROKER_NAME: activemq-broker
|
||||
healthcheck:
|
||||
test: [ "CMD-SHELL", "curl --silent --fail localhost:8161 || exit 1" ]
|
||||
interval: 15s
|
||||
timeout: 10s
|
||||
retries: 120
|
||||
networks:
|
||||
- e2e
|
||||
|
||||
amqexporter:
|
||||
image: bitnami/jmx-exporter:0.20.0
|
||||
hostname: amqexporter
|
||||
volumes:
|
||||
- ./config/amq/config.yaml:/opt/bitnami/jmx-exporter/example_configs/httpserver_sample_config.yml
|
||||
expose:
|
||||
- 5556
|
||||
depends_on:
|
||||
- amq
|
||||
networks:
|
||||
- e2e
|
||||
|
||||
amq-consumer-mock:
|
||||
image: apache/activemq-classic:6.0.1
|
||||
hostname: amq-consumer-mock
|
||||
entrypoint: bash
|
||||
command:
|
||||
- -c
|
||||
- "/opt/apache-activemq/bin/activemq consumer --brokerUrl tcp://amq:61616 --destination queue://testQueue --messageCount 10 --parallelThreads 2 && /opt/apache-activemq/bin/activemq consumer --brokerUrl tcp://amq:61616 --destination topic://testTopic --messageCount 10 --parallelThreads 2"
|
||||
depends_on:
|
||||
amq:
|
||||
condition: service_healthy
|
||||
networks:
|
||||
- e2e
|
||||
|
||||
amq-producer-mock:
|
||||
image: apache/activemq-classic:6.0.1
|
||||
hostname: amq-producer-mock
|
||||
entrypoint: bash
|
||||
command:
|
||||
- -c
|
||||
- "/opt/apache-activemq/bin/activemq producer --brokerUrl tcp://amq:61616 --destination queue://testQueue --messageCount 50 --persistent true --message hello && /opt/apache-activemq/bin/activemq producer --brokerUrl tcp://amq:61616 --destination topic://testTopic --messageCount 50 --persistent true --message world"
|
||||
depends_on:
|
||||
- amq-consumer-mock
|
||||
networks:
|
||||
- e2e
|
||||
|
||||
otel-collector:
|
||||
image: otel/opentelemetry-collector:${OTEL_COLLECTOR_VERSION}
|
||||
networks:
|
||||
- e2e
|
||||
command: [ "--config=/etc/otel-collector-config.yaml" ]
|
||||
volumes:
|
||||
- ./otel-collector-config.yaml:/etc/otel-collector-config.yaml
|
||||
expose:
|
||||
- 55678
|
||||
depends_on:
|
||||
oap:
|
||||
condition: service_healthy
|
||||
|
||||
networks:
|
||||
e2e:
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
# contributor license agreements. See the NOTICE file distributed with
|
||||
# this work for additional information regarding copyright ownership.
|
||||
# The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
# (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
# This file is used to show how to write configuration files and can be used to test.
|
||||
|
||||
setup:
|
||||
env: compose
|
||||
file: docker-compose.yml
|
||||
timeout: 20m
|
||||
init-system-environment: ../../script/env
|
||||
steps:
|
||||
- name: set PATH
|
||||
command: export PATH=/tmp/skywalking-infra-e2e/bin:$PATH
|
||||
- name: install yq
|
||||
command: bash test/e2e-v2/script/prepare/setup-e2e-shell/install.sh yq
|
||||
- name: install swctl
|
||||
command: bash test/e2e-v2/script/prepare/setup-e2e-shell/install.sh swctl
|
||||
|
||||
verify:
|
||||
retry:
|
||||
count: 60
|
||||
interval: 3s
|
||||
cases:
|
||||
- includes:
|
||||
- ./activemq-cases.yaml
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
# contributor license agreements. See the NOTICE file distributed with
|
||||
# this work for additional information regarding copyright ownership.
|
||||
# The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
# (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
{{- contains .}}
|
||||
- id: {{ b64enc "activemq::activemq-cluster" }}.1_{{ b64enc "testQueue" }}
|
||||
name: testQueue
|
||||
- id: {{ b64enc "activemq::activemq-cluster" }}.1_{{ b64enc "testTopic" }}
|
||||
name: testTopic
|
||||
{{- end}}
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
# contributor license agreements. See the NOTICE file distributed with
|
||||
# this work for additional information regarding copyright ownership.
|
||||
# The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
# (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
{{- contains . }}
|
||||
- id: {{ notEmpty .id }}
|
||||
name: activemq-broker
|
||||
instanceuuid: {{ notEmpty .instanceuuid }}
|
||||
attributes: []
|
||||
language: UNKNOWN
|
||||
{{- end }}
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
# contributor license agreements. See the NOTICE file distributed with
|
||||
# this work for additional information regarding copyright ownership.
|
||||
# The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
# (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
type: TIME_SERIES_VALUES
|
||||
results:
|
||||
{{- contains .results }}
|
||||
- metric:
|
||||
labels:
|
||||
{{- contains .metric.labels }}
|
||||
- key: destinationName
|
||||
value: {{ .value }}
|
||||
{{- end}}
|
||||
values:
|
||||
{{- contains .values }}
|
||||
- id: {{ notEmpty .id }}
|
||||
value: {{ .value }}
|
||||
traceid: null
|
||||
- id: {{ notEmpty .id }}
|
||||
value: null
|
||||
traceid: null
|
||||
{{- end}}
|
||||
{{- end}}
|
||||
error: null
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
# contributor license agreements. See the NOTICE file distributed with
|
||||
# this work for additional information regarding copyright ownership.
|
||||
# The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
# (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
type: TIME_SERIES_VALUES
|
||||
results:
|
||||
{{- contains .results }}
|
||||
- metric:
|
||||
labels:
|
||||
{{- contains .metric.labels }}
|
||||
- key: destinationType
|
||||
value: {{ .value }}
|
||||
{{- end}}
|
||||
values:
|
||||
{{- contains .values }}
|
||||
- id: {{ notEmpty .id }}
|
||||
value: {{ .value }}
|
||||
traceid: null
|
||||
- id: {{ notEmpty .id }}
|
||||
value: null
|
||||
traceid: null
|
||||
{{- end}}
|
||||
{{- end}}
|
||||
error: null
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
# contributor license agreements. See the NOTICE file distributed with
|
||||
# this work for additional information regarding copyright ownership.
|
||||
# The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
# (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
type: TIME_SERIES_VALUES
|
||||
results:
|
||||
{{- contains .results }}
|
||||
- metric:
|
||||
labels:
|
||||
{{- contains .metric.labels }}
|
||||
- key: service_instance_id
|
||||
value: {{ .value }}
|
||||
{{- end}}
|
||||
values:
|
||||
{{- contains .values }}
|
||||
- id: {{ notEmpty .id }}
|
||||
value: {{ .value }}
|
||||
traceid: null
|
||||
- id: {{ notEmpty .id }}
|
||||
value: null
|
||||
traceid: null
|
||||
{{- end}}
|
||||
{{- end}}
|
||||
error: null
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
# contributor license agreements. See the NOTICE file distributed with
|
||||
# this work for additional information regarding copyright ownership.
|
||||
# The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
# (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
type: TIME_SERIES_VALUES
|
||||
results:
|
||||
{{- contains .results }}
|
||||
- metric:
|
||||
labels: []
|
||||
values:
|
||||
{{- contains .values }}
|
||||
- id: {{ notEmpty .id }}
|
||||
value: {{ .value }}
|
||||
traceid: null
|
||||
- id: {{ notEmpty .id }}
|
||||
value: null
|
||||
traceid: null
|
||||
{{- end}}
|
||||
{{- end}}
|
||||
error: null
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
# contributor license agreements. See the NOTICE file distributed with
|
||||
# this work for additional information regarding copyright ownership.
|
||||
# The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
# (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
{{- contains . }}
|
||||
- id: {{ b64enc "activemq::activemq-cluster" }}.1
|
||||
name: activemq::activemq-cluster
|
||||
group: activemq
|
||||
shortname: activemq-cluster
|
||||
layers:
|
||||
- ACTIVEMQ
|
||||
normal: true
|
||||
{{- end }}
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
# contributor license agreements. See the NOTICE file distributed with
|
||||
# this work for additional information regarding copyright ownership.
|
||||
# The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
# (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
receivers:
|
||||
prometheus:
|
||||
config:
|
||||
scrape_configs:
|
||||
- job_name: "activemq-monitoring"
|
||||
scrape_interval: 30s
|
||||
static_configs:
|
||||
- targets: ['amqexporter:5556']
|
||||
labels:
|
||||
cluster: activemq-cluster
|
||||
|
||||
exporters:
|
||||
otlp:
|
||||
endpoint: oap:11800
|
||||
tls:
|
||||
insecure: true
|
||||
|
||||
processors:
|
||||
batch:
|
||||
service:
|
||||
pipelines:
|
||||
metrics:
|
||||
receivers:
|
||||
- prometheus
|
||||
processors:
|
||||
- batch
|
||||
exporters:
|
||||
- otlp
|
||||
Loading…
Reference in New Issue