Administration / Monitoring / Monitoring: getting started
Administration / Monitoring / Monitoring: getting started

Monitoring: getting started

Monitoring: getting started

Tarantool

First, you need to install the metrics package:

$ cd ${PROJECT_ROOT}
$ tarantoolctl rocks install metrics

Next, require it in your code:

local metrics = require('metrics')

Set a global label for your metrics:

metrics.set_global_labels({alias = 'alias'})

Enable default Tarantool metrics such as network, memory, operations, etc:

metrics.enable_default_metrics()

Initialize the Prometheus Exporter, or export metrics in any other format:

local httpd = require('http.server')
local http_handler = require('metrics.plugins.prometheus').collect_http


httpd.new('0.0.0.0', 8088)
    :route({path = '/metrics'}, function(...)
        return http_handler(...)
end)
    :start()

box.cfg{
    listen = 3302
}

Now you can use the HTTP API endpoint /metrics to collect your metrics in the Prometheus format. If you need your custom metrics, see the API reference.

Cartridge role

cartridge.roles.metrics is a role for Tarantool Cartridge. It allows using default metrics in a Cartridge application and manage them via configuration.

Usage

  1. Add the metrics package to dependencies in the .rockspec file. Make sure that you are using version 0.3.0 or higher.

    dependencies = {
        ...
        'metrics >= 0.3.0-1',
        ...
    }
    
  2. Add cartridge.roles.metrics to the roles list in cartridge.cfg in your entry-point file (e.g. init.lua).

    local ok, err = cartridge.cfg({
        ...
        roles = {
            ...
            'cartridge.roles.metrics',
            ...
        },
    })
    
  3. After role initialization, default metrics will be enabled and the global label ‘alias’ will be set. If you need to use the functionality of any metrics package, you may get it as a Cartridge service and use it like a regular package after require:

    local cartridge = require('cartridge')
    local metrics = cartridge.service_get('metrics')
    
  4. To view metrics via API endpoints, use the following configuration (to learn more about Cartridge configuration, see this):

    metrics:
      export:
      - path: '/path_for_json_metrics'
        format: 'json'
      - path: '/path_for_prometheus_metrics'
        format: 'prometheus'
    

You can add several entry points of the same format by different paths, like this:

metrics:
  export:
    - path: '/path_for_json_metrics'
      format: 'json'
    - path: '/another_path_for_json_metrics'
      format: 'json'