SingleStore

Supported OS Linux Windows Mac OS

Integration version4.0.0

Overview

This check monitors SingleStore through the Datadog Agent. SingleStore offers transactional and analytical processing of stored data. Enable the Datadog-SingleStoreDB integration to:

  • Understand the health of clusters and nodes through metrics and events.
  • Address drops in storage capacity.
  • Improve resource utilization efficiency.

Setup

Follow the instructions below to install and configure this check for an Agent running on a host. For containerized environments, see the Autodiscovery Integration Templates for guidance on applying these instructions.

Installation

The SingleStore check is included in the Datadog Agent package. No additional installation is needed on your server.

Configuration

Host

Metric collection
  1. Edit the singlestore.d/conf.yaml file, in the conf.d/ folder at the root of your Agent’s configuration directory to start collecting your SingleStore performance data. See the sample singlestore.d/conf.yaml for all available configuration options.

  2. Restart the Agent.

Note: By default, the SingleStore integration only collects metrics from the MV_GLOBAL_STATUS, AGGREGATORS, and LEAVES tables. To collect additional system level metrics (CPU, disk, network IO, and memory), set collect_system_metrics: true in your singlestore.d/conf.yaml file.

Log collection

Log collection is not supported for this site.

  1. Collecting logs is disabled by default in the Datadog Agent, enable it in your datadog.yaml file:

    logs_enabled: true
    
  2. Add the log files you are interested in to your singlestore.d/conf.yaml file to start collecting your SingleStore logs:

      logs:
        - type: file
          path: /var/lib/memsql/<NODE_ID>/tracelogs/memsql.log
          source: singlestore
          service: "<SERVICE_NAME>"
    

    Change the path and service parameter values and configure them for your environment. See the sample singlestore.d/conf.yaml for all available configuration options.

  3. Restart the Agent.

Containerized

For containerized environments, see the Autodiscovery Integration Templates for guidance on applying the parameters below.

Metric collection

ParameterValue
<INTEGRATION_NAME>singlestore
<INIT_CONFIG>blank or {}
<INSTANCE_CONFIG>{"host": "%%host%%", "port": "%%port%%", "username": "<USER>", "password": "<PASSWORD>"}
Log collection

Log collection is not supported for this site.

Collecting logs is disabled by default in the Datadog Agent. To enable it, see Kubernetes Log Collection.

ParameterValue
<LOG_CONFIG>{"source": "singlestore", "service": "<SERVICE_NAME>"}

Validation

Run the Agent’s status subcommand and look for singlestore under the Checks section.

Data Collected

Metrics

singlestore.aborted_clients
(gauge)
The number of aborted connections caused by the client dying without closing the connection properly.
Shown as connection
singlestore.aborted_connects
(gauge)
The number of failed attempts to connect to the server.
Shown as connection
singlestore.active_dedicated_admin_connections
(gauge)
Active admin connections.
Shown as connection
singlestore.aggregators.average_roundtrip_latency
(gauge)
The average ping roundtrip latency for a given aggregator.
Shown as millisecond
singlestore.aggregators.opened_connections
(gauge)
The number of connections opened on a given aggregator.
Shown as connection
singlestore.auto_attach_remaining_seconds
(gauge)
The time remaining until the automatic rebalance triggered by an auto-attach operation will occur. Only applies to aggregators.
Shown as second
singlestore.average_garbage_collection_duration
(gauge)
Average duration of garbage collection.
Shown as second
singlestore.buffer_manager_cached_memory
(gauge)
Tracks memory that was allocated by the Buffer Manager but is now cached and not in use. Limited to 25% of maximum_memory.
Shown as byte
singlestore.buffer_manager_memory
(gauge)
Tracks memory that is allocated by the Buffer Manager for SingleStore DB's built-in memory allocators.
Shown as byte
singlestore.buffer_manager_unrecycled_memory
(gauge)
Number of buffers ready to be recycled which have not yet been reclaimed.
Shown as byte
singlestore.bytes_received
(gauge)
The number of bytes received per second from all clients.
Shown as byte
singlestore.bytes_sent
(gauge)
The number of bytes sent per second sent to clients.
Shown as byte
singlestore.connections
(gauge)
The number of successful or non-successful connection attempts to the server.
Shown as connection
singlestore.context_switch_misses
(gauge)
The number of times the scheduler tried to switch connections but failed.
Shown as connection
singlestore.context_switches
(gauge)
The number of times any thread has switched connections because it deemed a connection idle.
Shown as connection
singlestore.cpu.cores_count
(gauge)
The number of cores on host.
Shown as core
singlestore.cpu.guest
(gauge)
Time spent running a virtual CPU for guest operating systems under the control of the Linux kernel.
Shown as percent
singlestore.cpu.guest_nice
(gauge)
Time spent running a nice guest (virtual CPU for guest operating systems under the control of the Linux kernel).
Shown as percent
singlestore.cpu.idle
(gauge)
Time spent in idle.
Shown as percent
singlestore.cpu.iowait
(gauge)
Time spent waiting for I/O.
Shown as percent
singlestore.cpu.irq
(gauge)
Time spent on servicing interrupts.
Shown as percent
singlestore.cpu.memsql_system
(gauge)
CPU usage by the SingleStore DB process, in kernel mode.
Shown as percent
singlestore.cpu.memsql_total
(gauge)
CPU usage by the SingleStore DB process.
Shown as percent
singlestore.cpu.memsql_user
(gauge)
CPU usage by the SingleStore DB process, in user mode.
Shown as percent
singlestore.cpu.nice
(gauge)
CPU usage in nice mode.
Shown as percent
singlestore.cpu.soft_irq
(gauge)
Time spent on servicing soft interrupts.
Shown as percent
singlestore.cpu.steal
(gauge)
Stolen time, which is the time spent in other operating systems when running in a virtualized environment.
Shown as percent
singlestore.cpu.system
(gauge)
CPU usage in kernel mode
Shown as percent
singlestore.cpu.total_used
(gauge)
CPU usage in percent. It refers to the whole machine, and not to SingleStore DB cgroup.
Shown as percent
singlestore.cpu.user
(gauge)
CPU usage in user mode.
Shown as percent
singlestore.disk.free
(gauge)
The remaining disk space available.
Shown as byte
singlestore.disk.read_bytes
(gauge)
Number of bytes read per second from the disk across all mount points.
Shown as byte
singlestore.disk.total
(gauge)
The total size of the disk.
Shown as byte
singlestore.disk.used
(gauge)
The amount of bytes used by the disk.
Shown as byte
singlestore.disk.write_bytes
(gauge)
Number of bytes written per second to the disk across all mount points.
Shown as byte
singlestore.disk_space_reserved_for_secondary_index
(gauge)
Disk space reserver for secondary index usage.
Shown as byte
singlestore.execution_time_of_reads_pct
(gauge)
Wall-time percentage of all read queries.
Shown as percent
singlestore.execution_time_of_write_pct
(gauge)
Wall-time percentage of all write queries.
Shown as percent
singlestore.failed_read_queries
(gauge)
Number of read queries per second which have failed.
Shown as query
singlestore.failed_write_queries
(gauge)
Number of write queries per second which have failed.
Shown as query
singlestore.free_io_pool_memory
(gauge)
Size of cached free buffers, which tracks how much memory in the IO pool is currently not in use. The maximum limit applies to each pool per partition on a node and can shrink if memory is reused. This variable can only be used to view the unused IO pool memory.
Shown as byte
singlestore.idle_queue
(gauge)
The number of connections in the idle queue. This is a subset of threads_idle.
Shown as connection
singlestore.inflight_async_compilations
(gauge)
Number of inflight asynchronous compilations currently running.
singlestore.ingest_errors_disk_space_use
(gauge)
Ingest errors disk space usage.
Shown as byte
singlestore.leaves.average_roundtrip_latency
(gauge)
The average ping roundtrip latency in milliseconds for a given leaf node.
Shown as millisecond
singlestore.leaves.opened_connections
(gauge)
The number of connections opened on a given leaf node.
Shown as connection
singlestore.license_capacity
(gauge)
License capacity
Shown as unit
singlestore.maximum_cluster_capacity
(gauge)
The allowed memory capacity in the cluster based on the license. Only on the master aggregator.
Shown as byte
singlestore.mem.cgroup_free
(gauge)
The memory free capacity in percent of all processes of SingleStore DB cgroup.
Shown as percent
singlestore.mem.cgroup_total
(gauge)
The memory limit for the SingleStore DB node_id based on its cgroup membership.
Shown as byte
singlestore.mem.cgroup_used
(gauge)
The memory used by all processes of SingleStore DB cgroup.
Shown as byte
singlestore.mem.free
(gauge)
The remaining free memory capacity on the physical host as a percentage.
Shown as percent
singlestore.mem.singlestore_used_memory
(gauge)
The memory used by SingleStore DB process specified by node_id.
Shown as byte
singlestore.mem.total
(gauge)
The memory available on the physical host.
Shown as byte
singlestore.mem.used
(gauge)
The total memory used on the physical host.
Shown as byte
singlestore.net.bytes_rx
(gauge)
The number of bytes received per second on each interface.
Shown as byte
singlestore.net.bytes_tx
(gauge)
The number of bytes sent per second on each interface.
Shown as byte
singlestore.queries
(gauge)
The number of statements executed by the server per second, including statements from clients and statements within stored programs.
Shown as query
singlestore.query_compilation_failures
(gauge)
Number of query compilation failures.
Shown as query
singlestore.query_compilations
(gauge)
Number of query compilations.
Shown as query
singlestore.questions
(gauge)
The number of statements executed by the server per second, excluding statements within stored programs.
Shown as query
singlestore.ready_queue
(gauge)
The number of connections with pending queries not associated with threads.
Shown as connection
singlestore.rows_affected_by_writes
(gauge)
Number of rows affected by write queries.
Shown as row
singlestore.rows_returned_by_reads
(gauge)
Number of rows returned by read queries.
Shown as row
singlestore.seconds_until_expiration
(gauge)
Seconds until expiration of the license.
Shown as second
singlestore.ssl.accept_renegotiates
(gauge)
Returns the number of start renegotiations in server mode.
Shown as connection
singlestore.ssl.accepts
(gauge)
Returns the number of started SSL/TLS handshakes in server mode.
Shown as connection
singlestore.ssl.client_connects
(gauge)
Returns the number of started SSL/TLS handshakes in client mode.
Shown as connection
singlestore.ssl.connect_renegotiates
(gauge)
Returns the number of start renegotiations in client mode.
Shown as connection
singlestore.ssl.finished_accepts
(gauge)
Returns the number of successfully established SSL/TLS sessions in server mode.
Shown as connection
singlestore.ssl.finished_connects
(gauge)
Returns the number of successfully established SSL/TLS sessions in client mode.
Shown as connection
singlestore.successful_read_queries
(gauge)
Number of read queries per second which have successfully run.
Shown as query
singlestore.successful_write_queries
(gauge)
Number of write queries per second which have successfully run.
Shown as query
singlestore.threads.background
(gauge)
Background threads managed by the query scheduler, i.e. replication master queries and the scheduler thread.
Shown as thread
singlestore.threads.cached
(gauge)
Number of kernel threads currently idle waiting for queries.
Shown as thread
singlestore.threads.connected
(gauge)
The number of connections currently open.
Shown as thread
singlestore.threads.created.count
(count)
The number of threads created between check runs to handle connections.
Shown as thread
singlestore.threads.created.total
(gauge)
The number of threads created to handle connections since server started.
Shown as thread
singlestore.threads.idle
(gauge)
The number of idle connections not associated with threads.
Shown as thread
singlestore.threads.running
(gauge)
The number of threads that are currently active.
Shown as thread
singlestore.threads.shutdown.count
(count)
The number of threads shut down between check run.
Shown as thread
singlestore.threads.shutdown.total
(gauge)
The number of threads shut down since the server started.
Shown as thread
singlestore.threads.waiting_for_disk_space
(gauge)
The number of threads currently blocked because the disk is full.
Shown as thread
singlestore.total_io_pool_memory
(gauge)
Total size of all buffers allocated by the IO pool for that partition, including buffers currently in use and free buffers in Freeiopool_memory. The maximum limit applies to each pool per partition on a node and does not shrink from its high value. This variable can only be used to view the total IO pool size.
Shown as byte
singlestore.total_server_memory
(gauge)
Tracks the node's overall memory use. Will not surpass the maximum_memory engine variable.
Shown as byte
singlestore.transaction_buffer_wait_time
(gauge)
Provides a view into transaction buffer log performance. For more information, see the Using Durability and Recovery topic.
Shown as second
singlestore.transaction_log_flush_wait_time
(gauge)
Cumulative amount of time commits have been waiting to flush to disk or across the network, if the database is running with sync durability or sync replication. For async, the value of Transactionlogflushwaittime should always be 0.
Shown as second
singlestore.uptime
(gauge)
The amount of time, in seconds, that the server has been up.
Shown as second
singlestore.used_cluster_capacity
(gauge)
The amount of memory capacity existent in the cluster. This is the sum of maximum_memory from all nodes in the cluster. Only on the master aggregator.
Shown as byte
singlestore.used_instance_license_units
(gauge)
Used license units
Shown as unit
singlestore.workload_management.active_queries
(gauge)
The number of queries currently running on this aggregator.
Shown as query
singlestore.workload_management.active_threads
(gauge)
The number of threads currently running per leaf due to queries originating from this aggregator.
Shown as thread
singlestore.workload_management.queued_queries
(gauge)
The number of queued concurrent columnstore writes.
Shown as query
singlestore.workload_management_active_connections
(gauge)
The number of connections per leaf allocated to queries originating from this aggregator.
Shown as connection

Events

The SingleStore integration does not include any events.

Service Checks

singlestore.can_connect
Returns CRITICAL if the Agent is unable to connect to and collect metrics from the monitored SingleStore instance. Returns OK otherwise.
Statuses: ok, critical

Troubleshooting

Need help? Contact Datadog support.

PREVIEWING: safchain/fix-custom-agent