All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Use box.info.ro instead of box.cfg.read_only in replication metrics.
- New Tarantool 3 metrics:
- tnt_config_alerts
- tnt_config_status
-
metrics.cfg{}
"all"
metasection for arrayinclude
andexclude
(metrics.cfg{include={'all'}}
can be used instead ofmetrics.cfg{include='all'}
,metrics.cfg{exclude={'all'}}
can be used instead ofmetrics.cfg{include='none'}
) -
tnt_election_leader_idle
metric. -
Histogram now logs a warning if
observe
is called withcdata
value.
-
Inconsistent metrics descrtiptions for memtx metrics.
-
New memory metrics:
- tnt_memtx_tuples_data_total
- tnt_memtx_tuples_data_read_view
- tnt_memtx_tuples_data_garbage
- tnt_memtx_index_total
- tnt_memtx_index_read_view
- tnt_vinyl_memory_tuple
- Using
cdata
values withhistogram:observe
.
- Don't export self replication status.
cartridge.roles.metrics
moved to cartridge-metrics-role repository (incompatible change).
metrics.cfg{}
-- a single entrypoint to setup the module:include
andexclude
options with the same effect as inenable_default_metrics(include, exclude)
(but its deprecated features already disabled);labels
options with the same effect asset_global_labels(labels)
;- values and effect (like default metrics callbacks) are preserved between reloads;
- does not deal with external features like cartridge HTTP setup
- Versioning support through
require('metrics')._VERSION
- Setup cartridge hotreload inside the role
- Extend
enable_default_metrics()
API:'all'
and'none'
options forinclude
argument,- simultaneous
include
andexclude
arguments (exclude
has higher priority)
- Build rock with cmake
- Override built-in metrics, if installed
- Passing nonexistent metrics to
enable_default_metrics()
- Using
{}
asinclude
inenable_default_metrics()
to enable all metrics - Versioning support through
require('metrics').VERSION
- Handle to clear psutils metrics
invoke_callbacks
option formetrics.collect()
- Ability to set metainfo for collectors
- Set
metainfo.default
totrue
for all collectors fromenable_default_metrics()
and psutils collectors default_only
option formetrics.collect()
- Fix
is_healthy
function to rely on membership state - Fix psutils time metrics
- Fix missing psutils cpu count after clear
- Set non-number values in
gauge:set
- Deprecated metrics from previous releases
memtx
MVCC memory monitoring
tnt_synchro_queue_len
metric type- Reset callbacks on hotreload
- Fix queries in quantile
- Clean info about spaces and indexes after their drop
- Fixed error when indexing spaces
- Label
thread
for per thread reporting net statistics metrics. tnt_cartridge_failover_trigger_total
metric- New synchro and election metrics:
tnt_synchro_queue_owner
tnt_synchro_queue_term
tnt_synchro_queue_len
tnt_synchro_queue_busy
tnt_election_state
tnt_election_vote
tnt_election_leader
tnt_election_term
- Renamed LuaJit metrics:
lj_gc_allocated_total
lj_gc_freed_total
lj_gc_steps_atomic_total
lj_gc_steps_finalize_total
lj_gc_steps_pause_total
lj_gc_steps_propagate_total
lj_gc_steps_sweep_total
lj_gc_steps_sweepstring_total
lj_jit_snap_restore_total
lj_jit_trace_abort_total
lj_strhash_hit_total
lj_strhash_miss_total
- Metrics:
lj_gc_allocated
lj_gc_freed
lj_gc_steps_atomic
lj_gc_steps_finalize
lj_gc_steps_pause
lj_gc_steps_propagate
lj_gc_steps_sweep
lj_gc_steps_sweepstring
lj_jit_snap_restore
lj_jit_trace_abort
lj_strhash_hit
lj_strhash_miss
- Deprecated metrics from previous releases
- Float numbers in Graphite exporter
- Signed timestamp in Graphite exporter
- Increase
Shared.make_key
performance in observations with empty label - Forbid observation of non-number value in collectors (except
gauge:set
) - Clean dead threads from
psutils.cpu
metric
tnt_cartridge_cluster_issues
metric
- Set non-number values in
gauge:set
- HTTP middleware v2
enable_cartridge_metrics
function
- Don't reset collectors when Cartridge roles hot reload
pairs
instead ofipairs
in iterations over replication info
- Type changed from
gauge
tocounter
:tnt_net_sent_total
tnt_net_received_total
tnt_net_connections_total
tnt_net_requests_total
tnt_stats_op_total
- New metrics:
tnt_vinyl_tuples
(same astnt_space_count
)tnt_fiber_amount
(same astnt_fiber_count
)lj_gc_memory
(same aslj_gc_total
)tnt_cpu_number
(same astnt_cpu_count
)tnt_cpu_time
(same astnt_cpu_total
)tnt_vinyl_scheduler_dump_total
(same astnt_vinyl_scheduler_dump_count
)tnt_replication_lag
tnt_vinyl_regulator_blocked_writers
tnt_net_requests_in_progress_total
tnt_net_requests_in_progress_current
tnt_net_requests_in_stream_total
tnt_net_requests_in_stream_current
tnt_replication_lsn
tnt_replication_status
tnt_ev_loop_time
tnt_ev_loop_prolog_time
tnt_ev_loop_epilog_time
- Metrics:
tnt_net_sent_rps
tnt_net_received_rps
tnt_net_connections_rps
tnt_net_requests_rps
tnt_stats_op_rps
tnt_space_count
tnt_fiber_count
lj_gc_total
tnt_cpu_count
tnt_cpu_total
tnt_vinyl_scheduler_dump_count
tnt_replication_<id>_lag
tnt_replication_master_<id>_lsn
tnt_replication_replica_<id>_lsn
- Update
http
dependency to 1.1.1
- Cast number64 to json number in json export plugin #321
- HTTP middleware v2
- collector's method
remove
to clear observations with given label pairs #263 counter:reset()
method #260tnt_read_only
metric #275
- Average collector
- Throw an error when http_middelware is processing a wrong handler #199
- cartridge issues metric fails before cartridge.cfg() call #298
- quantile metric is NAN if no samples provided for an age #303
- metrics registry refactoring to search with
O(1)
#188 ipairs
instead ofpairs
while iteration inhistogram
#196set_export
function provide default metrics config to make role reloadable #248- metrics registry refactoring to add and remove callbacks with
O(1)
#276
- be gentle to http routes, don't leave gaps in the array #246
- allow to create summary without observations #265
tnt_clock_delta
metric to compute clock difference on instances #232- set custom global labels in config and with
set_labels
function #259 - allow to include and exclude default metrics in config and in
enable_default_metrics
function #222 unregister_callback
function #262
enable_cartridge_metrics
function
- cartridge metrics role fails to start without http #225
- quantile overflow after
fiber.yield()
#235 - role and module hot reload #227, #228
tnt_cartridge_issues
gathers only local issues #211
- Age buckets in
summary
- New default metrics: cpu_user_time, cpu_system_time
- Vinyl metrics
- zone label support for Tarantool Cartridge >= '2.4.0'
- rpm packaging for CentOS 8, Fedora 30, 31, 32
- instance health check plugin
- package reloading works for
metrics.quantile
- instance_name in alias label if no alias present
- metrics.clear() disables default metrics
- cartridge role is permanent
- cartridge role configuration without clusterwide config
- graphite plugin kills previous workers on init
- graphite plugin format numbers without ULL/LL-suffixes
- graphite plugin time in seconds
- graphite plugin allows empty prefix
- Luajit platform metrics
enable_cartridge_metrics
function- Cartridge issues gauge
- CI on Github Actions
- Summary collector
- Average collector
- New default metrics: cpu_total, cpu_thread
- histogram:observe_latency for measure latency of function call with example
- Role for tarantool/cartridge
- Documentaion and examples on tarantool/http server middleware
- Throw exception when
http_middleware.build_default_collector
is called with same name - Attempt to index non-existent master vclock on a replica after the death of the master
- tarantool/http server middleware to collect http server metrics
collect
failure for vinyl metrics in strict mode- prometheus exporter: render 0 for 0ULL value instead of +Inf
- Travis CI build failures
- Renamed
info_vclock_{ID}
metric toinfo_vclock
, moved{ID}
to tags - Renamed
stat_op_{OP_TYPE}_total
metric tostat_op_total
, moved{OP_TYPE}
to tags - Renamed
stat_op_{OP_TYPE}_rps
metric tostat_op_rps
, moved{OP_TYPE}
to tags - Renamed
space_index_{IDX_NAME}_bsize
tospace_index_bsize
, moved{IDX_NAME}
to tags
- Ability to set labels globally for each metric