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.
This release adds to the graphite plugin ability to send metrics
to the multiple servers and hide replication metrics of the deleted
replica.
graphite: ability to send metrics to the multiple servers. Backward compatibility with previous plugin version is preserved. From now oninitmethod assigns an unique name to the created fiber using incoming graphite serveropts(if passed). Added newstop()method to stop all fibers started by the plugin (#540).
- Deleting a replica via
box.space._cluster:delete()doesn't delete information about this replica from the metrics (it's gone only after cluster is restarted) (#538).
This release fixes the No such file or directory error that occurs
if the /proc/<pid>/stat file does not exist.
- The
errormessage level displayed when the/proc/<pid>/statfile is missing has been changed toverbose. (#536).
This release introduces fix of the box.schema.needs_upgrade metric.
- Use
box.schema.needs_upgradeinstead ofbox.schema_needs_upgrade(#529).
This release adds new memory and schema metrics.
tnt_memorymetric (#519).tnt_memory_virtmetric (#521).tnt_schema_needs_upgrademetric (#524).
- Fixed a potential
processmetrics error whenfio.readreturns an empty string or an error (#527).
tnt_cartridge_config_checksummetric.
tnt_cartridge_config_appliedmetric that only reflected local node state.
tnt_cartridge_config_appliedmetric.- New optional
label_keysparameter forcounter()andgauge()metrics.
- New metrics category in config:
cpu_extended.
- 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 arrayincludeandexclude(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_idlemetric.- Histogram now logs a warning if
observeis called withcdatavalue.
- 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
cdatavalues withhistogram:observe.
- Don't export self replication status.
cartridge.roles.metricsmoved to cartridge-metrics-role repository (incompatible change).
metrics.cfg{}-- a single entrypoint to setup the module:includeandexcludeoptions with the same effect as inenable_default_metrics(include, exclude)(but its deprecated features already disabled);labelsoptions 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 forincludeargument,- simultaneous
includeandexcludearguments (excludehas higher priority)
- Build rock with cmake
- Override built-in metrics, if installed
- Passing nonexistent metrics to
enable_default_metrics() - Using
{}asincludeinenable_default_metrics()to enable all metrics - Versioning support through
require('metrics').VERSION
- Handle to clear psutils metrics
invoke_callbacksoption formetrics.collect()- Ability to set metainfo for collectors
- Set
metainfo.defaulttotruefor all collectors fromenable_default_metrics()and psutils collectors default_onlyoption formetrics.collect()
- Fix
is_healthyfunction 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
memtxMVCC memory monitoring
tnt_synchro_queue_lenmetric type- Reset callbacks on hotreload
- Fix queries in quantile
- Clean info about spaces and indexes after their drop
- Fixed error when indexing spaces
- Label
threadfor per thread reporting net statistics metrics. tnt_cartridge_failover_trigger_totalmetric- New synchro and election metrics:
tnt_synchro_queue_ownertnt_synchro_queue_termtnt_synchro_queue_lentnt_synchro_queue_busytnt_election_statetnt_election_votetnt_election_leadertnt_election_term
- Renamed LuaJit metrics:
lj_gc_allocated_totallj_gc_freed_totallj_gc_steps_atomic_totallj_gc_steps_finalize_totallj_gc_steps_pause_totallj_gc_steps_propagate_totallj_gc_steps_sweep_totallj_gc_steps_sweepstring_totallj_jit_snap_restore_totallj_jit_trace_abort_totallj_strhash_hit_totallj_strhash_miss_total
- Metrics:
lj_gc_allocatedlj_gc_freedlj_gc_steps_atomiclj_gc_steps_finalizelj_gc_steps_pauselj_gc_steps_propagatelj_gc_steps_sweeplj_gc_steps_sweepstringlj_jit_snap_restorelj_jit_trace_abortlj_strhash_hitlj_strhash_miss
- Deprecated metrics from previous releases
- Float numbers in Graphite exporter
- Signed timestamp in Graphite exporter
- Increase
Shared.make_keyperformance in observations with empty label - Forbid observation of non-number value in collectors (except
gauge:set) - Clean dead threads from
psutils.cpumetric
tnt_cartridge_cluster_issuesmetric
- Set non-number values in
gauge:set
- HTTP middleware v2
enable_cartridge_metricsfunction
- Don't reset collectors when Cartridge roles hot reload
pairsinstead ofipairsin iterations over replication info
- Type changed from
gaugetocounter:tnt_net_sent_totaltnt_net_received_totaltnt_net_connections_totaltnt_net_requests_totaltnt_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_lagtnt_vinyl_regulator_blocked_writerstnt_net_requests_in_progress_totaltnt_net_requests_in_progress_currenttnt_net_requests_in_stream_totaltnt_net_requests_in_stream_currenttnt_replication_lsntnt_replication_statustnt_ev_loop_timetnt_ev_loop_prolog_timetnt_ev_loop_epilog_time
- Metrics:
tnt_net_sent_rpstnt_net_received_rpstnt_net_connections_rpstnt_net_requests_rpstnt_stats_op_rpstnt_space_counttnt_fiber_countlj_gc_totaltnt_cpu_counttnt_cpu_totaltnt_vinyl_scheduler_dump_counttnt_replication_<id>_lagtnt_replication_master_<id>_lsntnt_replication_replica_<id>_lsn
- Update
httpdependency to 1.1.1
- Cast number64 to json number in json export plugin #321
- HTTP middleware v2
- collector's method
removeto clear observations with given label pairs #263 counter:reset()method #260tnt_read_onlymetric #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 ipairsinstead ofpairswhile iteration inhistogram#196set_exportfunction 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_deltametric to compute clock difference on instances #232- set custom global labels in config and with
set_labelsfunction #259 - allow to include and exclude default metrics in config and in
enable_default_metricsfunction #222 unregister_callbackfunction #262
enable_cartridge_metricsfunction
- cartridge metrics role fails to start without http #225
- quantile overflow after
fiber.yield()#235 - role and module hot reload #227, #228
tnt_cartridge_issuesgathers 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_metricsfunction- 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_collectoris 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
collectfailure 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}_totalmetric tostat_op_total, moved{OP_TYPE}to tags - Renamed
stat_op_{OP_TYPE}_rpsmetric tostat_op_rps, moved{OP_TYPE}to tags - Renamed
space_index_{IDX_NAME}_bsizetospace_index_bsize, moved{IDX_NAME}to tags
- Ability to set labels globally for each metric