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 {
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
These files are copied directly 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.
Files from [integrations-core](https://github.com/DataDog/integrations-core/search?q=jmx_metrics&unscoped_q=jmx_metrics)
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.
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