# (C) Datadog, Inc. 2019-present
# All rights reserved
# Licensed under a 3-clause BSD style license (see LICENSE)

HISTOGRAM_METRICS = {'mapr.db.table.latency'}

COUNT_METRICS = {
    'mapr.cache.lookups_data',
    'mapr.cache.lookups_dir',
    'mapr.cache.lookups_inode',
    'mapr.cache.lookups_largefile',
    'mapr.cache.lookups_meta',
    'mapr.cache.lookups_smallfile',
    'mapr.cache.lookups_table',
    'mapr.cache.misses_data',
    'mapr.cache.misses_dir',
    'mapr.cache.misses_inode',
    'mapr.cache.misses_largefile',
    'mapr.cache.misses_meta',
    'mapr.cache.misses_smallfile',
    'mapr.cache.misses_table',
    'mapr.cldb.rpc_received',
    'mapr.cldb.rpcs_failed',
    'mapr.db.append_bytes',
    'mapr.db.append_rpcrows',
    'mapr.db.append_rpcs',
    'mapr.db.cdc.sent_bytes',
    'mapr.db.checkandput_bytes',
    'mapr.db.checkandput_rpcrows',
    'mapr.db.checkandput_rpcs',
    'mapr.db.flushes',
    'mapr.db.forceflushes',
    'mapr.db.fullcompacts',
    'mapr.db.get_bytes',
    'mapr.db.get_readrows',
    'mapr.db.get_resprows',
    'mapr.db.get_rpcs',
    'mapr.db.increment_bytes',
    'mapr.db.increment_rpcrows',
    'mapr.db.increment_rpcs',
    'mapr.db.minicompacts',
    'mapr.db.put_bytes',
    'mapr.db.put_readrows',
    'mapr.db.put_rpcrows',
    'mapr.db.put_rpcs',
    'mapr.db.repl.sent_bytes',
    'mapr.db.scan_bytes',
    'mapr.db.scan_readrows',
    'mapr.db.scan_resprows',
    'mapr.db.scan_rpcs',
    'mapr.db.table.read_bytes',
    'mapr.db.table.read_rows',
    'mapr.db.table.resp_rows',
    'mapr.db.table.rpcs',
    'mapr.db.table.value_cache_hits',
    'mapr.db.table.value_cache_lookups',
    'mapr.db.table.write_bytes',
    'mapr.db.table.write_rows',
    'mapr.db.ttlcompacts',
    'mapr.db.updateandget_bytes',
    'mapr.db.updateandget_rpcrows',
    'mapr.db.updateandget_rpcs',
    'mapr.db.valuecache_hits',
    'mapr.db.valuecache_lookups',
    'mapr.fs.bulk_writes',
    'mapr.fs.bulk_writesbytes',
    'mapr.fs.kvstore_delete',
    'mapr.fs.kvstore_insert',
    'mapr.fs.kvstore_lookup',
    'mapr.fs.kvstore_scan',
    'mapr.fs.local_readbytes',
    'mapr.fs.local_reads',
    'mapr.fs.local_writebytes',
    'mapr.fs.local_writes',
    'mapr.fs.read_bytes',
    'mapr.fs.read_cachehits',
    'mapr.fs.read_cachemisses',
    'mapr.fs.reads',
    'mapr.fs.statstype_create',
    'mapr.fs.statstype_lookup',
    'mapr.fs.statstype_read',
    'mapr.fs.statstype_write',
    'mapr.fs.write_bytes',
    'mapr.fs.writes',
    'mapr.io.write_bytes',
    'mapr.io.writes',
    'mapr.rpc.bytes_recd',
    'mapr.rpc.bytes_sent',
    'mapr.rpc.calls_recd',
    'mapr.streams.listen_bytes',
    'mapr.streams.listen_msgs',
    'mapr.streams.listen_rpcs',
    'mapr.streams.produce_bytes',
    'mapr.streams.produce_msgs',
    'mapr.streams.produce_rpcs',
    'mapr.volmetrics.read_ops',
    'mapr.volmetrics.write_ops',
}

MONOTONIC_COUNTER_METRICS = {
    'mapr.cldb.containers_created',
    'mapr.drill.queries_completed',
    'mapr.process.context_switch_involuntary',
    'mapr.process.context_switch_voluntary',
    'mapr.process.cpu_time.syst',
    'mapr.process.cpu_time.user',
    'mapr.process.disk_octets.read',
    'mapr.process.disk_octets.write',
    'mapr.process.disk_ops.read',
    'mapr.process.disk_ops.write',
    'mapr.process.page_faults.majflt',
    'mapr.process.page_faults.minflt',
}

GAUGE_METRICS = {
    'mapr.alarms.alarm_raised',
    'mapr.cldb.cluster_cpu_total',
    'mapr.cldb.cluster_cpubusy_percent',
    'mapr.cldb.cluster_disk_capacity',
    'mapr.cldb.cluster_diskspace_used',
    'mapr.cldb.cluster_memory_capacity',
    'mapr.cldb.cluster_memory_used',
    'mapr.cldb.containers',
    'mapr.cldb.containers_unusable',
    'mapr.cldb.disk_space_available',
    'mapr.cldb.nodes_in_cluster',
    'mapr.cldb.nodes_offline',
    'mapr.cldb.storage_pools_cluster',
    'mapr.cldb.storage_pools_offline',
    'mapr.cldb.volumes',
    'mapr.db.cdc.pending_bytes',
    'mapr.db.get_currpcs',
    'mapr.db.index.pending_bytes',
    'mapr.db.put_currpcs',
    'mapr.db.repl.pending_bytes',
    'mapr.db.scan_currpcs',
    'mapr.db.table.latency',
    'mapr.db.valuecache_usedSize',
    'mapr.drill.allocator_root_peak',
    'mapr.drill.allocator_root_used',
    'mapr.drill.blocked_count',
    'mapr.drill.count',
    'mapr.drill.fd_usage',
    'mapr.drill.fragments_running',
    'mapr.drill.heap_used',
    'mapr.drill.non_heap_used',
    'mapr.drill.queries_running',
    'mapr.drill.runnable_count',
    'mapr.drill.waiting_count',
    'mapr.io.read_bytes',
    'mapr.io.reads',
    'mapr.process.cpu_percent',
    'mapr.process.data',
    'mapr.process.mem_percent',
    'mapr.process.rss',
    'mapr.process.vm',
    'mapr.status.ok',
    'mapr.streams.listen_currpcs',
    'mapr.topology.disks_total_capacity',
    'mapr.topology.disks_used_capacity',
    'mapr.topology.utilization',
    'mapr.volmetrics.read_latency',
    'mapr.volmetrics.read_throughput',
    'mapr.volmetrics.write_latency',
    'mapr.volmetrics.write_throughput',
    'mapr.volume.logical_used',
    'mapr.volume.quota',
    'mapr.volume.snapshot_used',
    'mapr.volume.total_used',
    'mapr.volume.used',
}

ALLOWED_METRICS = GAUGE_METRICS | COUNT_METRICS | MONOTONIC_COUNTER_METRICS
