Skip to content

Stateboard instance fails to collect cartridge issues #298

@DifferentialOrange

Description

@DifferentialOrange

After migration from metrics 0.9.0 to 0.10.0 and from cartridge 2.6.0 to 2.7.1 tests in our project started to fail.

We've got stateboard with default metrics and tests on this metrics.

-- stateboard,init.lua
metrics.enable_default_metrics()
metrics.set_global_labels({
    alias = app_config.alias
})
--set http endpoint

Test goes like this

group.test_stateboard_metrics = function()
    local resp = stateboard:http_request('get', '/app/metrics')
    test.assert_not(next(resp.json) == nil, "Metrics response must not be empty")
    for _, metric in ipairs(resp.json) do
        test.assert_equals(metric.label_pairs.alias, stateboard.env.TARANTOOL_ALIAS)
    end
end

After package update we've started to get an internal error

1) {
     response = {
        body = "Unhandled error: ...app/.rocks/share/tarantool/cartridge/issues.lua:97: attempt to index local 'topology_cfg' (a nil value)
                     stack traceback:
                     ...app/.rocks/share/tarantool/http/server.lua:743: in function 'process_client'
                     ...app/.rocks/share/tarantool/http/server.lua:1199: in function <..app/.rocks/share/ефкфтещщдhttp/server.lua:1198>
                     [C]: in function 'pcall'
                     builtin/socket.lua:1058: in function <builtin/socket.lua:1056>
                     
                     Request:
                     get /app/metrics? HTTP/1.1
                     Host: localhost:8088
                     Content-type: application/x-www-form-urlencoded
                     Connection: close
                     Content-length: 0
                     Accept: */*
                     
                     ",
             headers = {
                  connection = "close",
                  ["content-length"] = "667",
                  server = "Tarantool http (*** v1.10.11-0-gf0b0e7ecf-r423)",
             },
             proto = {1, 1},
             reason = "Ok",
             status = 500,
     },
       type = "HTTPRequest",
}

After I changed stateboard,init.lua to exclude cartridge_issues, it has been fixed.

metrics.enable_default_metrics(
    nil,                   --include section
    { 'cartridge_issues' } --exclude section
)

Even if this fix is reasonable and satisfying, I think this error throw is a bug and it must be fixed. It may be not metrics, but cartridge bug.

P.S. I can DM you a link to our repo project.

Metadata

Metadata

Labels

bugSomething isn't workingcustomer

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions