# Copyright 2022 Google LLC
#
# Licensed 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.

public_url: "https://cloud.google.com/stackdriver/docs/solutions/agents/ops-agent/third-party/activemq"
app_url: "https://activemq.apache.org/"
short_name: ActiveMQ
long_name: Apache ActiveMQ
logo_path: /stackdriver/images/activemq.png # supplied by google technical writer
description: |-
  The Apache ActiveMQ integration writes logs and collects storage usage and
  message metrics. Storage metrics include memory and disk usage.
  Message metrics include number of waiting messages, average wait time,
  and expired messages.
configure_integration: |-
  You must enable JMX support in the ActiveMQ [broker
  configuration](https://activemq.apache.org/jmx).
minimum_supported_agent_version:
  metrics: 2.11.0
  logging: 2.15.0
supported_operating_systems: linux
supported_app_version: ["Classic 5.8.x through 5.16.x", "Artemis 2.x"]
expected_metrics:
  - type: workload.googleapis.com/activemq.connection.count
    value_type: INT64
    kind: GAUGE
    monitored_resources: [gce_instance]
  - type: workload.googleapis.com/activemq.consumer.count
    value_type: INT64
    kind: GAUGE
    monitored_resources: [gce_instance]
    labels:
      - name: broker
        value_regex: .*
      - name: destination
        value_regex: .*
    representative: true
  - type: workload.googleapis.com/activemq.disk.store_usage
    value_type: DOUBLE
    kind: GAUGE
    monitored_resources: [gce_instance]
  - type: workload.googleapis.com/activemq.disk.temp_usage
    value_type: DOUBLE
    kind: GAUGE
    monitored_resources: [gce_instance]
  - type: workload.googleapis.com/activemq.memory.usage
    value_type: DOUBLE
    kind: GAUGE
    monitored_resources: [gce_instance]
    labels:
      - name: broker
        value_regex: .*
      - name: destination
        value_regex: .*
  - type: workload.googleapis.com/activemq.message.current
    value_type: INT64
    kind: GAUGE
    monitored_resources: [gce_instance]
    labels:
      - name: broker
        value_regex: .*
      - name: destination
        value_regex: .*
  - type: workload.googleapis.com/activemq.message.dequeued
    value_type: INT64
    kind: CUMULATIVE
    monitored_resources: [gce_instance]
    labels:
      - name: broker
        value_regex: .*
      - name: destination
        value_regex: .*
  - type: workload.googleapis.com/activemq.message.enqueued
    value_type: INT64
    kind: CUMULATIVE
    monitored_resources: [gce_instance]
    labels:
      - name: broker
        value_regex: .*
      - name: destination
        value_regex: .*
  - type: workload.googleapis.com/activemq.message.expired
    value_type: INT64
    kind: CUMULATIVE
    monitored_resources: [gce_instance]
    labels:
      - name: broker
        value_regex: .*
      - name: destination
        value_regex: .*
  - type: workload.googleapis.com/activemq.message.wait_time.avg
    value_type: DOUBLE
    kind: GAUGE
    monitored_resources: [gce_instance]
    labels:
      - name: broker
        value_regex: .*
      - name: destination
        value_regex: .*
  - type: workload.googleapis.com/activemq.producer.count
    value_type: INT64
    kind: GAUGE
    monitored_resources: [gce_instance]
    labels:
      - name: broker
        value_regex: .*
      - name: destination
        value_regex: .*
expected_logs:
  - log_name: syslog
    fields:
      - name: jsonPayload.message
        value_regex: '(activemq\[[0-9]+\]|activemq):'
        type: string
        description: ''
configuration_options:
  metrics:
    - type: activemq
      fields:
        - name: type
          default: null
          description: This value must be `activemq`.
        - name: endpoint
          default: http://localhost:1099
          description: The URL of the node to monitor.
        - name: username
          default: null
          description: The configured username if JMX is configured to require authentication.
        - name: password
          default: null
          description: The configured password if JMX is configured to require authentication.
        - name: collection_interval
          default: 60s
          description: A [time duration](https://pkg.go.dev/time#ParseDuration) value, such as `30s` or `5m`.
