#
# Cookbook:: irrigate-datadog
# Attributes:: default
#
# Copyright:: (C) 2019 The Orchard
#

default['datadog']['agent_restart_hours']               = '*'
default['datadog']['api_key']                           = '12345'
default['datadog']['autorestart']                       = true
default['datadog']['bind_host']                         = '0.0.0.0'
default['datadog']['datadog_credentials_data_bag_name'] = 'dev_datadog_credentials'
default['datadog']['enable_process_agent']              = true
default['datadog']['group']                             = 'dd-agent'
default['datadog']['tags'] = {
  'location' => 'on_prem',
  'irrigate_datadog_version': '1.9.2',
}
default['datadog']['extra_config']['logs_config'] = {
  'max_message_size_bytes' => 320000,
}

default['datadog']['ceph']['cmd'] = '/usr/bin/ceph'
default['datadog']['ceph']['instances'] = [
  {
    ceph_cmd: node['datadog']['ceph']['cmd'],
    use_sudo: true,
  },
]
default['datadog']['docker']['instances'] = [
  {
    url: 'unix://var/run/docker.sock',
    new_tag_names: 'false',
    tag_by_command: 'false',
    tags: [
      'docker',
      node['hostname'],
    ],
    collect_events: 'true',
    collect_container_size: 'true',
    collect_all_metrics: 'true',
    collect_images_stats: 'true',
  },
]
default['datadog']['haproxy']['instances'] = [
  {
    url: 'http://localhost:8080/haproxy-status',
    username: 'admin',
    password: '0rch4rD',
    status_check: 'true',
    collect_aggregates_only: 'false',
    collect_status_metrics: 'true',
  },
]
default['datadog']['journald']['units'] = {}
default['datadog']['logs']                    = []
default['datadog']['mysql']['host']           = 'localhost'
default['datadog']['mysql']['is_replica']     = '0'
# This attribute is deprecated. Use node['datadog']['mysql']['custom_queries'] instead.
default['datadog']['mysql']['queries']        = []
default['datadog']['mysql']['custom_queries'] = []
default['datadog']['mysql']['logs']           = []
default['datadog']['mysql']['socket']         = '/var/lib/mysql/mysql.sock'
default['datadog']['redisdb']['instances']    = [
  {
    host: 'localhost',
    port: '6379',
    command_stats: 'true',
    'slowlog-max-len': '128',
  },
]

# Neo4j attributes
default['datadog']['neo4j']['cluster_name']     = 'neo4j-cluster-name'
default['datadog']['neo4j']['connect_timeout']  = 10
default['datadog']['neo4j']['logs']             = []
default['datadog']['neo4j']['password']         = 'datadog123'
default['datadog']['neo4j']['path']             = '/opt/datadog-agent/neo4j'
# Neo4j HTTP port
default['datadog']['neo4j']['port']             = 7474
default['datadog']['neo4j']['server_name']      = 'graph.db'
default['datadog']['neo4j']['wheel']['version'] = '0.0.1'
default['datadog']['neo4j']['wheel']['source']  = "https://packagecloud.io/orchardit/neo4j/packages/python/datadog_neo4j-#{node['datadog']['neo4j']['wheel']['version']}-py2.py3-none-any.whl/download"
# Datadog does not support bolt-based checks, so use http, which is always running (immutable Neo4j setting) by default and listening on localhost.
default['datadog']['neo4j']['url']              = 'http://127.0.0.1'
default['datadog']['neo4j']['user']             = 'datadog'
default['datadog']['neo4j']['server_user']      = 'neo4j'
default['datadog']['neo4j']['version']          = '3.5.8'
# Prometheus/Openmetrics endpoint
default['datadog']['neo4j']['prometheus_port']  = '2004'
default['datadog']['neo4j']['neo4j_dbs']        = ['graph.db', 'system']
# Neo4j Datadog Integration Extra metrics (not included in the integration by default)
default['datadog']['neo4j']['extra_metrics']    = [
  {
    neo4j_database_graph_db_cluster_raft_is_leader: 'database.graph.db.cluster.raft.is_leader',
  },
  {
    neo4j_database_system_cluster_raft_is_leader: 'database.system.cluster.raft.is_leader',
  },
  {
    neo4j_dbms_cluster_discovery_memberset_reachable: 'dbms.cluster.discovery.memberset.reachable',
  },
  {
    neo4j_dbms_pool_bolt_used_heap: 'dbms.pool.bolt.used_heap',
  },
  {
    neo4j_dbms_pool_bolt_total_used: 'dbms.pool.bolt.total_used',
  },
  {
    neo4j_dbms_pool_bolt_total_size: 'dbms.pool.bolt.total_size',
  },
  {
    neo4j_dbms_pool_bolt_free: 'dbms.pool.bolt.free',
  },
  {
    neo4j_graph_db_check_point_duration: 'graph.db.check_point.duration',
  },
  {
    neo4j_graph_db_db_query_execution_failure: 'graph.db.db.query.execution.failure',
  },
  {
    neo4j_graph_db_ids_in_use_node: 'graph.db.ids_in_use.node',
  },
  {
    neo4j_graph_db_ids_in_use_property: 'graph.db.ids_in_use.property',
  },
  {
    neo4j_graph_db_ids_in_use_relationship: 'graph.db.ids_in_use.relationship',
  },
  {
    neo4j_graph_db_ids_in_use_relationship_type: 'graph.db.ids_in_use.relationship_type',
  },
  {
    neo4j_graph_db_pool_transaction_graph_db_total_used: 'graph.db.pool.transaction.graph.db.total_used',
  },
  {
    neo4j_graph_db_pool_transaction_graph_db_used_native: 'graph.db.pool.transaction.graph.db.used_native',
  },
  {
    neo4j_graph_db_pool_transaction_graph_db_used_heap: 'graph.db.pool.transaction.graph.db.used_heap',
  },
  {
    neo4j_graph_db_store_size_database: 'graph.db.store.size.database',
  },
  {
    neo4j_graph_db_transaction_active_read: 'graph.db.transaction.active_read',
  },
  {
    neo4j_graph_db_transaction_active_write: 'graph.db.transaction.active_write',
  },
  {
    neo4j_graph_db_transaction_last_committed_tx_id:
      {
        name: 'graph.db.transaction.last_committed_tx_id',
        type: 'gauge',
      },
  },
  {
    neo4j_page_cache_hit_ratio: 'page_cache.hit_ratio',
  },
  {
    neo4j_page_cache_usage_ratio: 'page_cache.usage_ratio',
  },
  {
    neo4j_vm_heap_used: 'vm.heap.used',
  },
]

# Datadog system probe attributes
default['datadog']['system_probe']['network_config']['enabled'] = true

default['datadog']['vault']['api_url'] = 'http://localhost:8200/v1'
default['datadog']['vault']['integration_enabled'] = true
