netdata/netdata

View on GitHub
src/go/collectors/go.d.plugin/modules/dockerhub/charts.go

Summary

Maintainability
A
0 mins
Test Coverage
// SPDX-License-Identifier: GPL-3.0-or-later

package dockerhub

import (
    "strings"

    "github.com/netdata/netdata/go/go.d.plugin/agent/module"
)

type (
    // Charts is an alias for module.Charts
    Charts = module.Charts
    // Dims is an alias for module.Dims
    Dims = module.Dims
    // Dim is an alias for module.Dim
    Dim = module.Dim
)

var charts = Charts{
    {
        ID:    "pulls_sum",
        Title: "Pulls Summary",
        Units: "pulls",
        Fam:   "pulls",
        Dims: Dims{
            {ID: "pull_sum", Name: "sum"},
        },
    },
    {
        ID:    "pulls",
        Title: "Pulls",
        Units: "pulls",
        Fam:   "pulls",
        Type:  module.Stacked,
    },
    {
        ID:    "pulls_rate",
        Title: "Pulls Rate",
        Units: "pulls/s",
        Fam:   "pulls",
        Type:  module.Stacked,
    },
    {
        ID:    "stars",
        Title: "Stars",
        Units: "stars",
        Fam:   "stars",
        Type:  module.Stacked,
    },
    {
        ID:    "status",
        Title: "Current Status",
        Units: "status",
        Fam:   "status",
    },
    {
        ID:    "last_updated",
        Title: "Time Since Last Updated",
        Units: "seconds",
        Fam:   "last updated",
    },
}

func addReposToCharts(repositories []string, cs *Charts) {
    for _, name := range repositories {
        dimName := strings.Replace(name, "/", "_", -1)
        _ = cs.Get("pulls").AddDim(&Dim{
            ID:   "pull_count_" + name,
            Name: dimName,
        })
        _ = cs.Get("pulls_rate").AddDim(&Dim{
            ID:   "pull_count_" + name,
            Name: dimName,
            Algo: module.Incremental,
        })
        _ = cs.Get("stars").AddDim(&Dim{
            ID:   "star_count_" + name,
            Name: dimName,
        })
        _ = cs.Get("status").AddDim(&Dim{
            ID:   "status_" + name,
            Name: dimName,
        })
        _ = cs.Get("last_updated").AddDim(&Dim{
            ID:   "last_updated_" + name,
            Name: dimName,
        })
    }
}