Observability

This page provides a high-level overview of the Observability functionality in MariaDB Cloud.

In order to interact with our Observability APIs, an API KEY must be generated. Throughout this document, we will refer to it as {{SKYSQL_API_KEY}}.

Additionally, you will need the MariaDB Cloud Database ID, available by clicking on any of your existing services from the MariaDB Cloud Console, and navigating to the Details page. We will Refer to the Database ID as {{SKYSQL_DATABASE_ID}} throughout this document.

For the impatient reader, we jump right to the Integrations section, then for ones who are building custom instrumentation, we provide a detailed list of APIs and their relevant documentation.

Integrations

Datadog

Using the Datadog integration, you can instrument Observability metrics from MariaDB Cloud into your Datadog account. This integration allows you to monitor and visualize MariaDB Cloud metrics alongside other services in your Datadog dashboard.

Requirements

You will need your Datadog API key to set up the integration. We will refer to it as {{DD_API_KEY}} throughout this document.

Agent Setup

You will need to configure the Datadog Agent to pull metrics from us. Here is an example of how you can setup the DataDog Agent:

  1. Create a local directory for configuration to be mapped to the Docker Container:

mkdir -p /home/datadog-agent/openmetrics
  1. Create a conf.yaml file in your openmetrics directory with:

init_config:

instances:
  - openmetrics_endpoint: https://api.skysql.com/observability/v2/metrics
    namespace: {{SKYSQL_DATABASE_ID}}
    extra_headers:
      X-API-KEY: {{SKYSQL_API_KEY}}
    metrics:
      - '.*'
  1. Send the metrics to the correct DataDog Site. You should refer to DataDog Site documentation to determine the correct SITE PARAMETER for your account. This resource provides a comprehensive list of Datadog sites and their corresponding SITE PARAMETER values, ensuring that your data is sent to the correct regional Datadog instance. We will refer to it as {{DD_SITE_PARAMETER}} throughout this document.

  2. Run the Datadog Agent Docker Container with the following command:

docker run -v /home/datadog-agent/openmetrics:/etc/datadog-agent/conf.d/openmetrics.d:ro \
  -e DD_API_KEY={{DD_API_KEY}} -e DD_HOSTNAME="my-agent" -e DD_SITE="{{DD_SITE_PARAMETER}}" \ 
  -e DD_LOG_LEVEL="info" gcr.io/datadoghq/agent:7
  1. You should see the metrics soon to be available in DataDog Metrics Explorer

If you can always check if the Observability API is working successfully by calling it directly:

curl --location 'https://api.skysql.com/observability/v2/metrics' \
--header 'X-API-KEY: {{SKYSQL_API_KEY}}'

Detailed documentation on how to interact with our APIs follows:

APIs

To build instrumentation around our Observability APIs, we expose the following endpoints:

Logs

MariaDB Cloud exposes a set of log-related endpoints under observability/v2/logs, allowing you to:

  • Retrieve logs within a specified date range

  • Download log archives

  • Query log types and servers

  • Manage log retention settings

Refer to the Observability section of the MariaDB Cloud API docs for the full list of parameters and responses.

Metrics

You can retrieve metrics (in Prometheus-compatible format) from MariaDB Cloud using the observability/v2/metrics endpoint. To learn more about query parameters and usage, see:

Example:

curl --location 'https://api.skysql.com/observability/v2/metrics' \
--header 'X-API-KEY: {{SKYSQL_API_KEY}}'

Refer to the Observability section of the MariaDB Cloud API docs for the full list of parameters and responses.

API Documentation

For the complete, detailed API reference (including request/response formats, error codes, etc.), please see the official MariaDB Cloud API docs here:

Appendix

Table A. Key Observability Metric Series

We export the folowing metrics as part of the metrics endpoint:

Metric

mariadb_galera_evs_repl_latency_avg_seconds

mariadb_galera_evs_repl_latency_max_seconds

mariadb_galera_evs_repl_latency_min_seconds

mariadb_galera_status_info

mariadb_global_status_aborted_clients

mariadb_global_status_aborted_connects

mariadb_global_status_buffer_pool_pages

mariadb_global_status_bytes_received

mariadb_global_status_bytes_sent

mariadb_global_status_commands_total

mariadb_global_status_created_tmp_disk_tables

mariadb_global_status_created_tmp_files

mariadb_global_status_created_tmp_tables

mariadb_global_status_handlers_total

mariadb_global_status_innodb_data_read

mariadb_global_status_innodb_data_written

mariadb_global_status_innodb_num_open_files

mariadb_global_status_innodb_page_size

mariadb_global_status_open_files

mariadb_global_status_open_table_definitions

mariadb_global_status_open_tables

mariadb_global_status_opened_files

mariadb_global_status_opened_table_definitions

mariadb_global_status_opened_tables

mariadb_global_status_queries

mariadb_global_status_questions

mariadb_global_status_rows_read

mariadb_global_status_rows_sent

mariadb_global_status_select_full_join

mariadb_global_status_select_full_range_join

mariadb_global_status_select_range

mariadb_global_status_select_range_check

mariadb_global_status_select_scan

mariadb_global_status_slave_running

mariadb_global_status_slow_queries

mariadb_global_status_sort_merge_passes

mariadb_global_status_sort_range

mariadb_global_status_sort_rows

mariadb_global_status_sort_scan

mariadb_global_status_table_locks_immediate

mariadb_global_status_table_locks_waited

mariadb_global_status_table_open_cache_hits

mariadb_global_status_table_open_cache_misses

mariadb_global_status_table_open_cache_overflows

mariadb_global_status_threads_cached

mariadb_global_status_threads_connected

mariadb_global_status_threads_created

mariadb_global_status_threads_running

mariadb_global_status_uptime

mariadb_global_status_wsrep_cert_deps_distance

mariadb_global_status_wsrep_cluster_conf_id

mariadb_global_status_wsrep_cluster_size

mariadb_global_status_wsrep_cluster_status

mariadb_global_status_wsrep_connected

mariadb_global_status_wsrep_flow_control_paused

mariadb_global_status_wsrep_last_committed

mariadb_global_status_wsrep_local_recv_queue

mariadb_global_status_wsrep_local_recv_queue_avg

mariadb_global_status_wsrep_local_recv_queue_max

mariadb_global_status_wsrep_local_recv_queue_min

mariadb_global_status_wsrep_local_send_queue

mariadb_global_status_wsrep_local_send_queue_avg

mariadb_global_status_wsrep_local_send_queue_max

mariadb_global_status_wsrep_local_send_queue_min

mariadb_global_status_wsrep_local_state

mariadb_global_status_wsrep_ready

mariadb_global_status_wsrep_replicated

mariadb_global_status_wsrep_replicated_bytes

mariadb_global_variables_gtid_current_pos

mariadb_global_variables_innodb_buffer_pool_size

mariadb_global_variables_innodb_log_buffer_size

mariadb_global_variables_key_buffer_size

mariadb_global_variables_max_connections

mariadb_global_variables_open_files_limit

mariadb_global_variables_query_cache_size

mariadb_global_variables_read_only

mariadb_global_variables_table_open_cache

mariadb_info_schema_engine_table_count_total

mariadb_info_schema_table_size

mariadb_security_users_without_passwords

mariadb_slave_status_exec_master_log_pos

mariadb_slave_status_last_io_errno

mariadb_slave_status_last_sql_errno

mariadb_slave_status_read_master_log_pos

mariadb_slave_status_relay_log_pos

mariadb_slave_status_seconds_behind_master

mariadb_slave_status_slave_io_running

mariadb_slave_status_slave_sql_running

mariadb_up

mariadb_xpand_activity_core0

mariadb_xpand_activity_til

mariadb_xpand_capacity_disk_system_avail_bytes

mariadb_xpand_capacity_disk_system_max_bytes

mariadb_xpand_capacity_disk_system_usage_ratio

mariadb_xpand_capacity_disk_total_usage_percent

mariadb_xpand_cluster_nodes_in_quorum

mariadb_xpand_cluster_total_nodes

mariadb_xpand_cluster_uptime_seconds

mariadb_xpand_containers_rows

mariadb_xpand_cpu_load

mariadb_xpand_io_disk_latency_seconds

mariadb_xpand_io_network_bytes

mariadb_xpand_io_network_latency_seconds

mariadb_xpand_memory_bm_bytes

mariadb_xpand_memory_reserved_bytes

mariadb_xpand_memory_total_bytes

mariadb_xpand_memory_working_bytes

mariadb_xpand_qps

mariadb_xpand_rebalancer_jobs_queued

mariadb_xpand_rebalancer_rebalancer_rebalance

mariadb_xpand_rebalancer_rebalancer_reprotects

mariadb_xpand_rebalancer_rebalancer_reranks

mariadb_xpand_rebalancer_rebalancer_softfail_reprotects

mariadb_xpand_rebalancer_rebalancer_splits

mariadb_xpand_rebalancer_underprotected_slices

mariadb_xpand_response_time_seconds

mariadb_xpand_sessions

mariadb_xpand_sessions_time_in_state

mariadb_xpand_sessions_trx_age

mariadb_xpand_stats_Com_alter_cluster

mariadb_xpand_stats_Com_delete

mariadb_xpand_stats_Com_delete_seconds

mariadb_xpand_stats_Com_insert

mariadb_xpand_stats_Com_insert_seconds

mariadb_xpand_stats_Com_select

mariadb_xpand_stats_Com_select_seconds

mariadb_xpand_stats_Com_set_option

mariadb_xpand_stats_Com_show_slave_status

mariadb_xpand_stats_Com_show_status

mariadb_xpand_stats_Com_show_variables

mariadb_xpand_stats_Com_update

mariadb_xpand_stats_Com_update_seconds

mariadb_xpand_stats_connections

mariadb_xpand_tps

mariadb_xpand_wals_avg_sync_time_seconds

maxscale_modules

maxscale_server_active_operations

maxscale_server_adaptive_avg_select_time

maxscale_server_connection_pool_empty

maxscale_server_connections

maxscale_server_max_connections

maxscale_server_max_pool_size

maxscale_server_persistent_connections

maxscale_server_reused_connections

maxscale_server_routed_packets

maxscale_server_total_connections

maxscale_service_connections

maxscale_threads_count

maxscale_threads_current_descriptors

maxscale_threads_errors

maxscale_threads_event_queue_length

maxscale_threads_hangups

maxscale_threads_max_queue_time

maxscale_threads_reads

maxscale_threads_stack_size

maxscale_threads_total_descriptors

maxscale_threads_writes

maxscale_up

maxscale_uptime_seconds

process_resident_memory_bytes

Last updated

Was this helpful?