Use git submodules to load metrics.yaml files

This commit is contained in:
Tyler Benson 2019-01-08 09:01:48 -08:00
parent 249951aa7a
commit f63d40fe55
11 changed files with 74 additions and 1320 deletions

3
.gitmodules vendored Normal file
View File

@ -0,0 +1,3 @@
[submodule "dd-java-agent/agent-jmxfetch/integrations-core"]
path = dd-java-agent/agent-jmxfetch/integrations-core
url = https://github.com/DataDog/integrations-core.git

View File

@ -27,3 +27,19 @@ shadowJar {
jar { jar {
classifier = 'unbundled' classifier = 'unbundled'
} }
task submodulesUpdate(type:Exec) {
group 'Build Setup'
description 'Initializes and updates integrations-core git submodule'
commandLine 'git', 'submodule', 'update', '--init', 'integrations-core'
}
task copyMetricConfigs(type:Exec) {
group 'Build Setup'
description 'Copy metrics.yaml files from integrations-core into resources'
commandLine './copy-metric-configs.sh', 'integrations-core', sourceSets.main.output.resourcesDir
}
processResources.dependsOn copyMetricConfigs
copyMetricConfigs.dependsOn submodulesUpdate
// Runs the copy task before processResources, so duplicate files in the local repo would overwrite imported ones.

View File

@ -0,0 +1,51 @@
#!/usr/bin/env bash
# Debug mode:
# set -x
function print_usage() {
echo "Usage: $0 search_directory build_resources_output_directory"
}
search_directory=$1
if [ ! -d "$search_directory" ]; then
echo "Must specify a valid search_directory"
print_usage
exit 1
fi
build_resources_output_directory=$2
if [ ! -d "$build_resources_output_directory" ]; then
echo "Must specify a valid build_resources_output_directory"
print_usage
exit 1
fi
# Add the full package path.
build_resources_output_directory="$build_resources_output_directory/datadog/trace/agent/jmxfetch"
# Find all the metrics.yaml files containing "jmx_metrics:"
metrics_files=$(grep --include=metrics.yaml -rwl $search_directory -e 'jmx_metrics:')
if [ -z "$metrics_files" ]; then
echo "No metrics.yaml files with jmx_metrics blocks found."
print_usage
exit 1
fi
# reset file and ensure directories exists
> $build_resources_output_directory/metricconfigs.txt
mkdir -p $build_resources_output_directory/metricconfigs
for input_file in $metrics_files ; do
# generate new name based on integration folder name which should look like this:
# integrations-core/<integration_name>/datadog_checks/<integration_name>/data/metrics.yaml
output_file=$(echo "$input_file" | awk -F/ '{print $2}')
# save file name in metricconfigs.txt
echo "$output_file.yaml" >> $build_resources_output_directory/metricconfigs.txt
# copy to output location
output_file="$build_resources_output_directory/metricconfigs/$output_file.yaml"
cp $input_file $output_file
done

@ -0,0 +1 @@
Subproject commit 3e38b4e75edcee3ca84f022ea50240b0fc0537f2

View File

@ -1,8 +1,8 @@
# Metric Configs # Metric Configs
These files are copied directly from [integrations-core](https://github.com/DataDog/integrations-core/search?q=jmx_metrics&unscoped_q=jmx_metrics) Files from [integrations-core](https://github.com/DataDog/integrations-core/search?q=jmx_metrics&unscoped_q=jmx_metrics)
where the only modification is updating the file name. are copied here at build time by the `copy-metric-configs.sh` script which is called by gradle after initializing the submodule.
These will be bundled in `dd-java-agent.jar`. Due to limitations in Java, it is non-trivial These are then bundled in `dd-java-agent.jar`. Due to limitations in Java, it is non-trivial
to get all these files from within the jar without knowing their names. to get all these files from within the jar without knowing their names.
Consequently, we list out each integration in `metricconfigs.txt` so the agent can reference them. Consequently, we list out each integration in `metricconfigs.txt` so the agent can reference them.

View File

@ -1,5 +0,0 @@
activemq.yaml
cassandra.yaml
kafka.yaml
solr.yaml
tomcat.yaml

View File

@ -1,54 +0,0 @@
# Default metrics collected by this check. You should not have to modify this.
jmx_metrics:
- include:
destinationType: Queue
attribute:
AverageEnqueueTime:
alias: activemq.queue.avg_enqueue_time
metric_type: gauge
ConsumerCount:
alias: activemq.queue.consumer_count
metric_type: gauge
ProducerCount:
alias: activemq.queue.producer_count
metric_type: gauge
MaxEnqueueTime:
alias: activemq.queue.max_enqueue_time
metric_type: gauge
MinEnqueueTime:
alias: activemq.queue.min_enqueue_time
metric_type: gauge
MemoryPercentUsage:
alias: activemq.queue.memory_pct
metric_type: gauge
QueueSize:
alias: activemq.queue.size
metric_type: gauge
DequeueCount:
alias: activemq.queue.dequeue_count
metric_type: counter
DispatchCount:
alias: activemq.queue.dispatch_count
metric_type: counter
EnqueueCount:
alias: activemq.queue.enqueue_count
metric_type: counter
ExpiredCount:
alias: activemq.queue.expired_count
metric_type: counter
InFlightCount:
alias: activemq.queue.in_flight_count
metric_type: counter
- include:
type: Broker
attribute:
StorePercentUsage:
alias: activemq.broker.store_pct
metric_type: gauge
TempPercentUsage:
alias: activemq.broker.temp_pct
metric_type: gauge
MemoryPercentUsage:
alias: activemq.broker.memory_pct
metric_type: gauge

View File

@ -1,427 +0,0 @@
# Default metrics collected by this check. You should not have to modify this.
jmx_metrics:
- include:
domain: org.apache.cassandra.metrics
type: ClientRequest
name:
- Latency
attribute:
- 75thPercentile
- 95thPercentile
- OneMinuteRate
- include:
domain: org.apache.cassandra.metrics
type: DroppedMessage
name:
- Dropped
attribute:
- OneMinuteRate
- include:
domain: org.apache.cassandra.metrics
type: ThreadPools
scope:
- MutationStage
- CounterMutationStage
- ReadStage
- ViewMutationStage
name:
- PendingTasks
- CurrentlyBlockedTasks
path:
- request
- include:
domain: org.apache.cassandra.metrics
type: ThreadPools
scope:
- MemtableFlushWriter
- HintsDispatcher
- MemtablePostFlush
- MigrationStage
- MiscStage
- SecondaryIndexManagement
name:
- PendingTasks
- CurrentlyBlockedTasks
path:
- internal
- include:
domain: org.apache.cassandra.metrics
type: Storage
name:
- Load
- Exceptions
- include:
domain: org.apache.cassandra.metrics
type: Table
bean_regex:
- .*keyspace=.*
name:
- ReadLatency
- WriteLatency
attribute:
- 75thPercentile
- 95thPercentile
- 99thPercentile
- OneMinuteRate
exclude:
keyspace:
- system
- system_auth
- system_distributed
- system_schema
- system_traces
- include:
domain: org.apache.cassandra.metrics
type: Table
bean_regex:
- .*keyspace=.*
name:
- RangeLatency
- CasPrepareLatency
- CasProposeLatency
- CasCommitLatency
- ViewLockAcquireTime
- ViewReadTime
attribute:
- 75thPercentile
- 95thPercentile
- OneMinuteRate
exclude:
keyspace:
- system
- system_auth
- system_distributed
- system_schema
- system_traces
- include:
domain: org.apache.cassandra.metrics
type: Table
bean_regex:
- .*keyspace=.*
name:
- SSTablesPerReadHistogram
- TombstoneScannedHistogram
- WaitingOnFreeMemtableSpace
attribute:
- 75thPercentile
- 95thPercentile
exclude:
keyspace:
- system
- system_auth
- system_distributed
- system_schema
- system_traces
- include:
domain: org.apache.cassandra.metrics
type: Table
bean_regex:
- .*keyspace=.*
name:
- ColUpdateTimeDeltaHistogram
attribute:
- Min
- 75thPercentile
- 95thPercentile
exclude:
keyspace:
- system
- system_auth
- system_distributed
- system_schema
- system_traces
- include:
domain: org.apache.cassandra.metrics
type: Table
bean_regex:
- .*keyspace=.*
name:
- BloomFilterFalseRatio
- CompressionRatio
- KeyCacheHitRate
- LiveSSTableCount
- MaxPartitionSize
- MeanPartitionSize
- MeanRowSize
- MaxRowSize
- PendingCompactions
- SnapshotsSize
attribute:
- Value
exclude:
keyspace:
- system
- system_auth
- system_distributed
- system_schema
- system_traces
- include:
domain: org.apache.cassandra.metrics
type: Table
bean_regex:
- .*keyspace=.*
name:
- CompactionBytesWritten
- BytesFlushed
- PendingFlushes
- LiveDiskSpaceUsed
- TotalDiskSpaceUsed
- RowCacheHitOutOfRange
- RowCacheHit
- RowCacheMiss
attribute:
- Count
exclude:
keyspace:
- system
- system_auth
- system_distributed
- system_schema
- system_traces
- include:
domain: org.apache.cassandra.metrics
type: Cache
scope: KeyCache
name:
- HitRate
attribute:
- Count
- include:
domain: org.apache.cassandra.metrics
type: CommitLog
name:
- PendingTasks
- TotalCommitLogSize
attribute:
- Value
- include:
domain: org.apache.cassandra.db
type: Tables
attribute:
DroppableTombstoneRatio:
alias: cassandra.db.droppable_tombstone_ratio
# Young Gen Collectors (Minor Collections)
- include:
domain: java.lang
type: GarbageCollector
name: Copy
attribute:
CollectionCount:
metric_type: counter
alias: jmx.gc.minor_collection_count
CollectionTime:
metric_type: counter
alias: jmx.gc.minor_collection_time
- include:
domain: java.lang
type: GarbageCollector
name: PS Scavenge
attribute:
CollectionCount:
metric_type: counter
alias: jmx.gc.minor_collection_count
CollectionTime:
metric_type: counter
alias: jmx.gc.minor_collection_time
- include:
domain: java.lang
type: GarbageCollector
name: ParNew
attribute:
CollectionCount:
metric_type: counter
alias: jmx.gc.minor_collection_count
CollectionTime:
metric_type: counter
alias: jmx.gc.minor_collection_time
- include:
domain: java.lang
type: GarbageCollector
name: G1 Young Generation
attribute:
CollectionCount:
metric_type: counter
alias: jmx.gc.minor_collection_count
CollectionTime:
metric_type: counter
alias: jmx.gc.minor_collection_time
# Old Gen Collectors (Major collections)
- include:
domain: java.lang
type: GarbageCollector
name: MarkSweepCompact
attribute:
CollectionCount:
metric_type: counter
alias: jmx.gc.major_collection_count
CollectionTime:
metric_type: counter
alias: jmx.gc.major_collection_time
- include:
domain: java.lang
type: GarbageCollector
name: PS MarkSweep
attribute:
CollectionCount:
metric_type: counter
alias: jmx.gc.major_collection_count
CollectionTime:
metric_type: counter
alias: jmx.gc.major_collection_time
- include:
domain: java.lang
type: GarbageCollector
name: ConcurrentMarkSweep
attribute:
CollectionCount:
metric_type: counter
alias: jmx.gc.major_collection_count
CollectionTime:
metric_type: counter
alias: jmx.gc.major_collection_time
- include:
domain: java.lang
type: GarbageCollector
name: G1 Mixed Generation
attribute:
CollectionCount:
metric_type: counter
alias: jmx.gc.major_collection_count
CollectionTime:
metric_type: counter
alias: jmx.gc.major_collection_time
# Deprecated metrics for pre Cassandra 3.0 versions compatibility.
# If you are using cassandra 2, the metrics below will be used,
# otherwise they will be ignored.
- include:
domain: org.apache.cassandra.metrics
type: ColumnFamily
bean_regex:
- .*keyspace=.*
name:
- ReadLatency
- WriteLatency
attribute:
- 75thPercentile
- 95thPercentile
- 99thPercentile
- OneMinuteRate
exclude:
keyspace:
- system
- system_auth
- system_distributed
- system_schema
- system_traces
- include:
domain: org.apache.cassandra.metrics
type: ColumnFamily
bean_regex:
- .*keyspace=.*
name:
- RangeLatency
- CasPrepareLatency
- CasProposeLatency
- CasCommitLatency
- ViewLockAcquireTime
- ViewReadTime
attribute:
- 75thPercentile
- 95thPercentile
- OneMinuteRate
exclude:
keyspace:
- system
- system_auth
- system_distributed
- system_schema
- system_traces
- include:
domain: org.apache.cassandra.metrics
type: ColumnFamily
bean_regex:
- .*keyspace=.*
name:
- SSTablesPerReadHistogram
- TombstoneScannedHistogram
- WaitingOnFreeMemtableSpace
attribute:
- 75thPercentile
- 95thPercentile
exclude:
keyspace:
- system
- system_auth
- system_distributed
- system_schema
- system_traces
- include:
domain: org.apache.cassandra.metrics
type: ColumnFamily
bean_regex:
- .*keyspace=.*
name:
- ColUpdateTimeDeltaHistogram
attribute:
- Min
- 75thPercentile
- 95thPercentile
exclude:
keyspace:
- system
- system_auth
- system_distributed
- system_schema
- system_traces
- include:
domain: org.apache.cassandra.metrics
type: ColumnFamily
bean_regex:
- .*keyspace=.*
name:
- BloomFilterFalseRatio
- CompressionRatio
- KeyCacheHitRate
- LiveSSTableCount
- MaxPartitionSize
- MeanPartitionSize
- MeanRowSize
- MaxRowSize
- PendingCompactions
- SnapshotsSize
attribute:
- Value
exclude:
keyspace:
- system
- system_auth
- system_distributed
- system_schema
- system_traces
- include:
domain: org.apache.cassandra.metrics
type: ColumnFamily
bean_regex:
- .*keyspace=.*
name:
- PendingFlushes
- LiveDiskSpaceUsed
- TotalDiskSpaceUsed
- RowCacheHitOutOfRange
- RowCacheHit
- RowCacheMiss
attribute:
- Count
exclude:
keyspace:
- system
- system_auth
- system_distributed
- system_schema
- system_traces
- include:
domain: org.apache.cassandra.db
type: ColumnFamilies
attribute:
DroppableTombstoneRatio:
alias: cassandra.db.droppable_tombstone_ratio

View File

@ -1,566 +0,0 @@
# Metrics collected by this check. You should not have to modify this.
jmx_metrics:
#
# Producers (only v0.8.2.x)
#
- include:
domain: 'kafka.producer'
bean_regex: 'kafka\.producer:type=ProducerRequestMetrics,name=ProducerRequestRateAndTimeMs,clientId=.*'
attribute:
Count:
metric_type: rate
alias: kafka.producer.request_rate
- include:
domain: 'kafka.producer'
bean_regex: 'kafka\.producer:type=ProducerRequestMetrics,name=ProducerRequestRateAndTimeMs,clientId=.*'
attribute:
Mean:
metric_type: gauge
alias: kafka.producer.request_latency_avg
- include:
domain: 'kafka.producer'
bean_regex: 'kafka\.producer:type=ProducerTopicMetrics,name=BytesPerSec,clientId=.*'
attribute:
Count:
metric_type: rate
alias: kafka.producer.bytes_out
- include:
domain: 'kafka.producer'
bean_regex: 'kafka\.producer:type=ProducerTopicMetrics,name=MessagesPerSec,clientId=.*'
attribute:
Count:
metric_type: rate
alias: kafka.producer.message_rate
#
# Producers (v0.9.0.x to v0.10.2.x)
#
- include:
domain: 'kafka.producer'
bean_regex: 'kafka\.producer:type=producer-metrics,client-id=.*'
attribute:
response-rate:
metric_type: gauge
alias: kafka.producer.response_rate
- include:
domain: 'kafka.producer'
bean_regex: 'kafka\.producer:type=producer-metrics,client-id=.*'
attribute:
request-rate:
metric_type: gauge
alias: kafka.producer.request_rate
- include:
domain: 'kafka.producer'
bean_regex: 'kafka\.producer:type=producer-metrics,client-id=.*'
attribute:
request-latency-avg:
metric_type: gauge
alias: kafka.producer.request_latency_avg
- include:
domain: 'kafka.producer'
bean_regex: 'kafka\.producer:type=producer-metrics,client-id=.*'
attribute:
outgoing-byte-rate:
metric_type: gauge
alias: kafka.producer.bytes_out
- include:
domain: 'kafka.producer'
bean_regex: 'kafka\.producer:type=producer-metrics,client-id=.*'
attribute:
io-wait-time-ns-avg:
metric_type: gauge
alias: kafka.producer.io_wait
- include:
domain: 'kafka.producer'
bean_regex: 'kafka.producer:type=producer-metrics,client-id=([-.\w]+)'
attribute:
- waiting-threads:
metric_type: gauge
alias: kafka.producer.waiting_threads
- buffer-total-bytes:
metric_type: gauge
alias: kafka.producer.buffer_bytes_total
- buffer-available-bytes:
metric_type: gauge
alias: kafka.producer.available_buffer_bytes
- bufferpool-wait-time:
metric_type: gauge
alias: kafka.producer.bufferpool_wait_time
- batch-size-avg:
metric_type: gauge
alias: kafka.producer.batch_size_avg
- batch-size-max:
metric_type: gauge
alias: kafka.producer.batch_size_max
- compression-rate-avg:
metric_type: gauge
alias: kafka.producer.compression_rate_avg
- record-queue-time-avg:
metric_type: gauge
alias: kafka.producer.record_queue_time_avg
- record-queue-time-max:
metric_type: gauge
alias: kafka.producer.record_queue_time_max
- request-latency-avg:
metric_type: gauge
alias: kafka.producer.request_latency_avg
- request-latency-max:
metric_type: gauge
alias: kafka.producer.request_latency_max
- record-send-rate:
metric_type: gauge
alias: kafka.producer.records_send_rate
- records-per-request-avg:
metric_type: gauge
alias: kafka.producer.records_per_request
- record-retry-rate:
metric_type: gauge
alias: kafka.producer.record_retry_rate
- record-error-rate:
metric_type: gauge
alias: kafka.producer.record_error_rate
- record-size-max:
metric_type: gauge
alias: kafka.producer.record_size_max
- record-size-avg:
metric_type: gauge
alias: kafka.producer.record_size_avg
- requests-in-flight:
metric_type: gauge
alias: kafka.producer.requests_in_flight
- metadata-age:
metric_type: gauge
alias: kafka.producer.metadata_age
- produce-throttle-time-max:
metric_type: gauge
alias: kafka.producer.throttle_time_max
- produce-throttle-time-avg:
metric_type: gauge
alias: kafka.producer.throttle_time_avg
#
# Producers: Per Topic Metrics
#
- include:
domain: 'kafka.producer'
bean_regex: 'kafka\.producer:type=producer-topic-metrics,client-id=(.*?),topic=(.*?)(?:,|$)'
attribute:
byte-rate:
metric_type: gauge
alias: kafka.producer.bytes_out
tags:
client: $1
topic: $2
- include:
domain: 'kafka.producer'
bean_regex: 'kafka\.producer:type=producer-topic-metrics,client-id=(.*?),topic=(.*?)(?:,|$)'
attribute:
record-send-rate:
metric_type: gauge
alias: kafka.producer.record_send_rate
tags:
client: $1
topic: $2
- include:
domain: 'kafka.producer'
bean_regex: 'kafka\.producer:type=producer-topic-metrics,client-id=(.*?),topic=(.*?)(?:,|$)'
attribute:
compression-rate:
metric_type: gauge
alias: kafka.producer.compression_rate
tags:
client: $1
topic: $2
- include:
domain: 'kafka.producer'
bean_regex: 'kafka\.producer:type=producer-topic-metrics,client-id=(.*?),topic=(.*?)(?:,|$)'
attribute:
record-retry-rate:
metric_type: gauge
alias: kafka.producer.record_retry_rate
tags:
client: $1
topic: $2
- include:
domain: 'kafka.producer'
bean_regex: 'kafka\.producer:type=producer-topic-metrics,client-id=(.*?),topic=(.*?)(?:,|$)'
attribute:
record-error-rate:
metric_type: gauge
alias: kafka.producer.record_error_rate
tags:
client: $1
topic: $2
#
# Consumers (only v0.8.2.x)
#
- include:
domain: 'kafka.consumer'
bean_regex: 'kafka\.consumer:type=ConsumerFetcherManager,name=MaxLag,clientId=.*'
attribute:
Value:
metric_type: gauge
alias: kafka.consumer.max_lag
- include:
domain: 'kafka.consumer'
bean_regex: 'kafka\.consumer:type=ConsumerFetcherManager,name=MinFetchRate,clientId=.*'
attribute:
Value:
metric_type: gauge
alias: kafka.consumer.fetch_rate
- include:
domain: 'kafka.consumer'
bean_regex: 'kafka\.consumer:type=ConsumerTopicMetrics,name=BytesPerSec,clientId=.*'
attribute:
Count:
metric_type: rate
alias: kafka.consumer.bytes_in
- include:
domain: 'kafka.consumer'
bean_regex: 'kafka\.consumer:type=ConsumerTopicMetrics,name=MessagesPerSec,clientId=.*'
attribute:
Count:
metric_type: rate
alias: kafka.consumer.messages_in
- include:
# Offsets committed to ZooKeeper
domain: 'kafka.consumer'
bean_regex: 'kafka\.consumer:type=ZookeeperConsumerConnector,name=ZooKeeperCommitsPerSec,clientId=.*'
attribute:
Count:
metric_type: rate
alias: kafka.consumer.zookeeper_commits
- include:
# Offsets committed to Kafka
domain: 'kafka.consumer'
bean_regex: 'kafka\.consumer:type=ZookeeperConsumerConnector,name=KafkaCommitsPerSec,clientId=.*'
attribute:
Count:
metric_type: rate
alias: kafka.consumer.kafka_commits
#
# Consumers (v0.9.0.x to v0.10.2.x)
#
- include:
domain: 'kafka.consumer'
bean_regex: 'kafka\.consumer:type=consumer-fetch-manager-metrics,client-id=.*'
attribute:
bytes-consumed-rate:
metric_type: gauge
alias: kafka.consumer.bytes_in
- include:
domain: 'kafka.consumer'
bean_regex: 'kafka\.consumer:type=consumer-fetch-manager-metrics,client-id=.*'
attribute:
records-consumed-rate:
metric_type: gauge
alias: kafka.consumer.messages_in
#
# Consumers: Per Topic Metrics
#
- include:
domain: 'kafka.consumer'
bean_regex: 'kafka\.consumer:type=consumer-fetch-manager-metrics,client-id=(.*?),topic=(.*?)(?:,|$)'
attribute:
fetch-size-avg:
metric_type: gauge
alias: kafka.consumer.fetch_size_avg
tags:
client: $1
topic: $2
- include:
domain: 'kafka.consumer'
bean_regex: 'kafka\.consumer:type=consumer-fetch-manager-metrics,client-id=(.*?),topic=(.*?)(?:,|$)'
attribute:
fetch-size-max:
metric_type: gauge
alias: kafka.consumer.fetch_size_max
tags:
client: $1
topic: $2
- include:
domain: 'kafka.consumer'
bean_regex: 'kafka\.consumer:type=consumer-fetch-manager-metrics,client-id=(.*?),topic=(.*?)(?:,|$)'
attribute:
bytes-consumed-rate:
metric_type: gauge
alias: kafka.consumer.bytes_consumed
tags:
client: $1
topic: $2
- include:
domain: 'kafka.consumer'
bean_regex: 'kafka\.consumer:type=consumer-fetch-manager-metrics,client-id=(.*?),topic=(.*?)(?:,|$)'
attribute:
records-per-request-avg:
metric_type: gauge
alias: kafka.consumer.records_per_request_avg
tags:
client: $1
topic: $2
- include:
domain: 'kafka.consumer'
bean_regex: 'kafka\.consumer:type=consumer-fetch-manager-metrics,client-id=(.*?),topic=(.*?)(?:,|$)'
attribute:
records-consumed-rate:
metric_type: gauge
alias: kafka.consumer.records_consumed
tags:
client: $1
topic: $2
#
# Aggregate cluster stats
#
- include:
domain: 'kafka.server'
bean: 'kafka.server:type=BrokerTopicMetrics,name=BytesOutPerSec'
attribute:
Count:
metric_type: rate
alias: kafka.net.bytes_out.rate
- include:
domain: 'kafka.server'
bean: 'kafka.server:type=BrokerTopicMetrics,name=BytesInPerSec'
attribute:
Count:
metric_type: rate
alias: kafka.net.bytes_in.rate
- include:
domain: 'kafka.server'
bean: 'kafka.server:type=BrokerTopicMetrics,name=MessagesInPerSec'
attribute:
Count:
metric_type: rate
alias: kafka.messages_in.rate
- include:
domain: 'kafka.server'
bean: 'kafka.server:type=BrokerTopicMetrics,name=BytesRejectedPerSec'
attribute:
Count:
metric_type: rate
alias: kafka.net.bytes_rejected.rate
#
# Per Topic Broker Stats
#
- include:
domain: '"kafka.server"'
bean_regex: '"kafka.server":type="BrokerTopicMetrics",name="(.*?)-MessagesInPerSec"'
attribute:
Count:
metric_type: rate
alias: kafka.topic.messages_in.rate
tags:
topic: $1
#
# Request timings
#
- include:
domain: 'kafka.server'
bean: 'kafka.server:type=BrokerTopicMetrics,name=FailedFetchRequestsPerSec'
attribute:
Count:
metric_type: rate
alias: kafka.request.fetch.failed.rate
- include:
domain: 'kafka.server'
bean: 'kafka.server:type=BrokerTopicMetrics,name=FailedProduceRequestsPerSec'
attribute:
Count:
metric_type: rate
alias: kafka.request.produce.failed.rate
- include:
domain: 'kafka.network'
bean: 'kafka.network:type=RequestMetrics,name=RequestsPerSec,request=Produce'
attribute:
Count:
metric_type: rate
alias: kafka.request.produce.rate
- include:
domain: 'kafka.network'
bean: 'kafka.network:type=RequestMetrics,name=TotalTimeMs,request=Produce'
attribute:
Mean:
metric_type: gauge
alias: kafka.request.produce.time.avg
99thPercentile:
metric_type: gauge
alias: kafka.request.produce.time.99percentile
- include:
domain: 'kafka.network'
bean: 'kafka.network:type=RequestMetrics,name=RequestsPerSec,request=FetchConsumer'
attribute:
Count:
metric_type: rate
alias: kafka.request.fetch_consumer.rate
- include:
domain: 'kafka.network'
bean: 'kafka.network:type=RequestMetrics,name=RequestsPerSec,request=FetchFollower'
attribute:
Count:
metric_type: rate
alias: kafka.request.fetch_follower.rate
- include:
domain: 'kafka.network'
bean: 'kafka.network:type=RequestMetrics,name=TotalTimeMs,request=FetchConsumer'
attribute:
Mean:
metric_type: gauge
alias: kafka.request.fetch_consumer.time.avg
99thPercentile:
metric_type: gauge
alias: kafka.request.fetch_consumer.time.99percentile
- include:
domain: 'kafka.network'
bean: 'kafka.network:type=RequestMetrics,name=TotalTimeMs,request=FetchFollower'
attribute:
Mean:
metric_type: gauge
alias: kafka.request.fetch_follower.time.avg
99thPercentile:
metric_type: gauge
alias: kafka.request.fetch_follower.time.99percentile
- include:
domain: 'kafka.network'
bean: 'kafka.network:type=RequestMetrics,name=TotalTimeMs,request=UpdateMetadata'
attribute:
Mean:
metric_type: gauge
alias: kafka.request.update_metadata.time.avg
99thPercentile:
metric_type: gauge
alias: kafka.request.update_metadata.time.99percentile
- include:
domain: 'kafka.network'
bean: 'kafka.network:type=RequestMetrics,name=TotalTimeMs,request=Metadata'
attribute:
Mean:
metric_type: gauge
alias: kafka.request.metadata.time.avg
99thPercentile:
metric_type: gauge
alias: kafka.request.metadata.time.99percentile
- include:
domain: 'kafka.network'
bean: 'kafka.network:type=RequestMetrics,name=TotalTimeMs,request=Offsets'
attribute:
Mean:
metric_type: gauge
alias: kafka.request.offsets.time.avg
99thPercentile:
metric_type: gauge
alias: kafka.request.offsets.time.99percentile
- include:
domain: 'kafka.server'
bean: 'kafka.server:type=KafkaRequestHandlerPool,name=RequestHandlerAvgIdlePercent'
attribute:
OneMinuteRate:
metric_type: gauge
alias: kafka.request.handler.avg.idle.pct.rate
- include:
domain: 'kafka.server'
bean: 'kafka.server:type=ProducerRequestPurgatory,name=PurgatorySize'
attribute:
Value:
metric_type: gauge
alias: kafka.request.producer_request_purgatory.size
- include:
domain: 'kafka.server'
bean: 'kafka.server:type=FetchRequestPurgatory,name=PurgatorySize'
attribute:
Value:
metric_type: gauge
alias: kafka.request.fetch_request_purgatory.size
#
# Replication stats
#
- include:
domain: 'kafka.server'
bean: 'kafka.server:type=ReplicaManager,name=UnderReplicatedPartitions'
attribute:
Value:
metric_type: gauge
alias: kafka.replication.under_replicated_partitions
- include:
domain: 'kafka.server'
bean: 'kafka.server:type=ReplicaManager,name=IsrShrinksPerSec'
attribute:
Count:
metric_type: rate
alias: kafka.replication.isr_shrinks.rate
- include:
domain: 'kafka.server'
bean: 'kafka.server:type=ReplicaManager,name=IsrExpandsPerSec'
attribute:
Count:
metric_type: rate
alias: kafka.replication.isr_expands.rate
- include:
domain: 'kafka.controller'
bean: 'kafka.controller:type=ControllerStats,name=LeaderElectionRateAndTimeMs'
attribute:
Count:
metric_type: rate
alias: kafka.replication.leader_elections.rate
- include:
domain: 'kafka.controller'
bean: 'kafka.controller:type=ControllerStats,name=UncleanLeaderElectionsPerSec'
attribute:
Count:
metric_type: rate
alias: kafka.replication.unclean_leader_elections.rate
- include:
domain: 'kafka.controller'
bean: 'kafka.controller:type=KafkaController,name=OfflinePartitionsCount'
attribute:
Value:
metric_type: gauge
alias: kafka.replication.offline_partitions_count
- include:
domain: 'kafka.controller'
bean: 'kafka.controller:type=KafkaController,name=ActiveControllerCount'
attribute:
Value:
metric_type: gauge
alias: kafka.replication.active_controller_count
- include:
domain: 'kafka.server'
bean: 'kafka.server:type=ReplicaManager,name=PartitionCount'
attribute:
Value:
metric_type: gauge
alias: kafka.replication.partition_count
- include:
domain: 'kafka.server'
bean: 'kafka.server:type=ReplicaManager,name=LeaderCount'
attribute:
Value:
metric_type: gauge
alias: kafka.replication.leader_count
- include:
domain: 'kafka.server'
bean: 'kafka.server:type=ReplicaFetcherManager,name=MaxLag,clientId=Replica'
attribute:
Value:
metric_type: gauge
alias: kafka.replication.max_lag
#
# Log flush stats
#
- include:
domain: 'kafka.log'
bean: 'kafka.log:type=LogFlushStats,name=LogFlushRateAndTimeMs'
attribute:
Count:
metric_type: rate
alias: kafka.log.flush_rate.rate

View File

@ -1,200 +0,0 @@
# Default metrics collected by this check. You should not have to modify this.
jmx_metrics:
# Solr versions >= 7.0
- include:
category: SEARCHER
name:
- numDocs
scope:
- searcher
attribute:
Value:
alias: solr.searcher.numdocs
metric_type: gauge
- include:
category: SEARCHER
name: maxDoc
scope:
- searcher
attribute:
Value:
alias: solr.searcher.maxdocs
metric_type: gauge
- include:
category: SEARCHER
name: warmupTime
scope:
- searcher
attribute:
Value:
alias: solr.searcher.warmup
metric_type: gauge
- include:
category: CACHE
name: documentCache
scope:
- searcher
attribute:
cumulative_lookups:
alias: solr.document_cache.lookups
metric_type: counter
cumulative_hits:
alias: solr.document_cache.hits
metric_type: counter
cumulative_inserts:
alias: solr.document_cache.inserts
metric_type: counter
cumulative_evictions:
alias: solr.document_cache.evictions
metric_type: counter
- include:
category: CACHE
name: queryResultCache
scope:
- searcher
attribute:
cumulative_lookups:
alias: solr.query_result_cache.lookups
metric_type: counter
cumulative_hits:
alias: solr.query_result_cache.hits
metric_type: counter
cumulative_inserts:
alias: solr.query_result_cache.inserts
metric_type: counter
cumulative_evictions:
alias: solr.query_result_cache.evictions
metric_type: counter
- include:
category: CACHE
name: filterCache
scope:
- searcher
attribute:
cumulative_lookups:
alias: solr.filter_cache.lookups
metric_type: counter
cumulative_hits:
alias: solr.filter_cache.hits
metric_type: counter
cumulative_inserts:
alias: solr.filter_cache.inserts
metric_type: counter
cumulative_evictions:
alias: solr.filter_cache.evictions
metric_type: counter
- include:
category: QUERY
name: requests
attribute:
Count:
alias: solr.search_handler.requests
metric_type: counter
- include:
category: QUERY
name: timeouts
attribute:
Count:
alias: solr.search_handler.timeouts
metric_type: counter
- include:
category: QUERY
name: errors
attribute:
Count:
alias: solr.search_handler.errors
metric_type: counter
- include:
category: QUERY
name: totalTime
attribute:
Count:
alias: solr.search_handler.time
metric_type: counter
- include:
category: QUERY
name: requestTimes
attribute:
avgRequestsPerSecond:
alias: solr.search_handler.avg_requests_per_sec
metric_type: gauge
avgTimePerRequest:
alias: solr.search_handler.avg_time_per_req
metric_type: gauge
# Solr versions < 7.0
- include:
type: searcher
attribute:
maxDoc:
alias: solr.searcher.maxdoc
metric_type: gauge
numDocs:
alias: solr.searcher.numdocs
metric_type: gauge
warmupTime:
alias: solr.searcher.warmup
metric_type: gauge
- include:
id: org.apache.solr.search.FastLRUCache
attribute:
cumulative_lookups:
alias: solr.cache.lookups
metric_type: counter
cumulative_hits:
alias: solr.cache.hits
metric_type: counter
cumulative_inserts:
alias: solr.cache.inserts
metric_type: counter
cumulative_evictions:
alias: solr.cache.evictions
metric_type: counter
- include:
id: org.apache.solr.search.LRUCache
attribute:
cumulative_lookups:
alias: solr.cache.lookups
metric_type: counter
cumulative_hits:
alias: solr.cache.hits
metric_type: counter
cumulative_inserts:
alias: solr.cache.inserts
metric_type: counter
cumulative_evictions:
alias: solr.cache.evictions
metric_type: counter
- include:
id: org.apache.solr.handler.component.SearchHandler
attribute:
errors:
alias: solr.search_handler.errors
metric_type: counter
requests:
alias: solr.search_handler.requests
metric_type: counter
timeouts:
alias: solr.search_handler.timeouts
metric_type: counter
totalTime:
alias: solr.search_handler.time
metric_type: counter
avgTimePerRequest:
alias: solr.search_handler.avg_time_per_req
metric_type: gauge
avgRequestsPerSecond:
alias: solr.search_handler.avg_requests_per_sec
metric_type: gauge

View File

@ -1,65 +0,0 @@
# Default metrics collected by this check. You should not have to modify this.
jmx_metrics:
- include:
type: ThreadPool
attribute:
maxThreads:
alias: tomcat.threads.max
metric_type: gauge
currentThreadCount:
alias: tomcat.threads.count
metric_type: gauge
currentThreadsBusy:
alias: tomcat.threads.busy
metric_type: gauge
- include:
type: GlobalRequestProcessor
attribute:
bytesSent:
alias: tomcat.bytes_sent
metric_type: counter
bytesReceived:
alias: tomcat.bytes_rcvd
metric_type: counter
errorCount:
alias: tomcat.error_count
metric_type: counter
requestCount:
alias: tomcat.request_count
metric_type: counter
maxTime:
alias: tomcat.max_time
metric_type: gauge
processingTime:
alias: tomcat.processing_time
metric_type: counter
- include:
j2eeType: Servlet
attribute:
processingTime:
alias: tomcat.servlet.processing_time
metric_type: counter
errorCount:
alias: tomcat.servlet.error_count
metric_type: counter
requestCount:
alias: tomcat.servlet.request_count
metric_type: counter
- include:
type: Cache
attribute:
accessCount:
alias: tomcat.cache.access_count
metric_type: counter
hitsCounts:
alias: tomcat.cache.hits_count
metric_type: counter
- include:
type: JspMonitor
attribute:
jspCount:
alias: tomcat.jsp.count
metric_type: counter
jspReloadCount:
alias: tomcat.jsp.reload_count
metric_type: counter