Skip to content

Cartridge role reload resets metrics data #334

Closed
@DifferentialOrange

Description

@DifferentialOrange

metrics package should support role reload, while it resets all observations and collectors.

Steps to reproduce

  1. Create template application

    cartridge create --name test-app
  2. Change init.lua

    local ok, err = cartridge.cfg({
        roles_reload_allowed = true,
        roles = {
            'cartridge.roles.vshard-storage',
            'cartridge.roles.vshard-router',
            'cartridge.roles.metrics',
            'app.roles.custom',
        },
    })
  3. Start an application

    cartridge build
    cartridge start -d
    cartridge replicasets setup --bootstrap-vshard
  4. Connect to instance

    cartridge enter router
  5. Execute reload

    test-reload.router> metrics = require('metrics')
    ---
    ...
    
    test-reload.router> metrics.counter('c'):inc()
    ---
    ...
    
    test-reload.router> metrics.collect()
    ---
    - - label_pairs:
         alias: router
       timestamp: 1640183661554368
       value: 1
       metric_name: c
    ...
    
    test-reload.router> require("cartridge.roles").reload()
    ---
    - true
    ...
    
    test-reload.router> metrics = require('metrics')
    ---
    ...
    
    test-reload.router> metrics.collect()
    ---
    - []
    ...
    
    test-reload.router> metrics.collectors()
    ---
    - []
    ...
    

Metadata

Metadata

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions