Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update prometheus/common #32

Merged
merged 5 commits into from
Feb 18, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 10 additions & 6 deletions .github/workflows/golangci-lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,19 +14,23 @@ on:

jobs:
golangci:
permissions:
contents: read # for actions/checkout to fetch code
pull-requests: read # for golangci/golangci-lint-action to fetch pull requests
name: lint
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
- name: install Go
uses: actions/setup-go@6edd4406fa81c3da01a34fa6f6343087c207a568 # v3.5.0
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Install Go
uses: actions/setup-go@3041bf56c941b39c61721a86cd11f3bb1338122a # v5.2.0
with:
go-version: 1.20.x
go-version: 1.23.x
- name: Install snmp_exporter/generator dependencies
run: sudo apt-get update && sudo apt-get -y install libsnmp-dev
if: github.repository == 'prometheus/snmp_exporter'
- name: Lint
uses: golangci/golangci-lint-action@3a919529898de77ec3da873e3063ca4b10e7f5cc # v3.7.0
uses: golangci/golangci-lint-action@971e284b6050e8a5849b72094c50ab08da042db8 # v6.1.1
with:
version: v1.54.2
args: --verbose
version: v1.62.0
6 changes: 3 additions & 3 deletions collector/arp_linux.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@ package collector
import (
"errors"
"fmt"
"log/slog"
"net"

"github.com/go-kit/log"
"github.com/jsimonetti/rtnetlink"
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/procfs"
Expand All @@ -32,7 +32,7 @@ type arpCollector struct {
fs procfs.FS
deviceFilter deviceFilter
entries *prometheus.Desc
logger log.Logger
logger *slog.Logger
config *NodeCollectorConfig
}

Expand All @@ -41,7 +41,7 @@ func init() {
}

// NewARPCollector returns a new Collector exposing ARP stats.
func NewARPCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
func NewARPCollector(config *NodeCollectorConfig, logger *slog.Logger) (Collector, error) {
fs, err := procfs.NewFS(*config.Path.ProcPath)
if err != nil {
return nil, fmt.Errorf("failed to open procfs: %w", err)
Expand Down
6 changes: 3 additions & 3 deletions collector/bcache_linux.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ package collector

import (
"fmt"
"log/slog"

"github.com/go-kit/log"
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/procfs/bcache"
)
Expand All @@ -32,13 +32,13 @@ func init() {
// A bcacheCollector is a Collector which gathers metrics from Linux bcache.
type bcacheCollector struct {
fs bcache.FS
logger log.Logger
logger *slog.Logger
config *NodeCollectorConfig
}

// NewBcacheCollector returns a newly allocated bcacheCollector.
// It exposes a number of Linux bcache statistics.
func NewBcacheCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
func NewBcacheCollector(config *NodeCollectorConfig, logger *slog.Logger) (Collector, error) {
fs, err := bcache.NewFS(*config.Path.SysPath)
if err != nil {
return nil, fmt.Errorf("failed to open sysfs: %w", err)
Expand Down
9 changes: 4 additions & 5 deletions collector/bonding_linux.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,18 +19,17 @@ package collector
import (
"errors"
"fmt"
"log/slog"
"os"
"path/filepath"
"strings"

"github.com/go-kit/log"
"github.com/go-kit/log/level"
"github.com/prometheus/client_golang/prometheus"
)

type bondingCollector struct {
slaves, active typedDesc
logger log.Logger
logger *slog.Logger
config *NodeCollectorConfig
}

Expand All @@ -40,7 +39,7 @@ func init() {

// NewBondingCollector returns a newly allocated bondingCollector.
// It exposes the number of configured and active slave of linux bonding interfaces.
func NewBondingCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
func NewBondingCollector(config *NodeCollectorConfig, logger *slog.Logger) (Collector, error) {
return &bondingCollector{
slaves: typedDesc{prometheus.NewDesc(
prometheus.BuildFQName(namespace, "bonding", "slaves"),
Expand All @@ -63,7 +62,7 @@ func (c *bondingCollector) Update(ch chan<- prometheus.Metric) error {
bondingStats, err := readBondingStats(statusfile)
if err != nil {
if errors.Is(err, os.ErrNotExist) {
level.Debug(c.logger).Log("msg", "Not collecting bonding, file does not exist", "file", statusfile)
c.logger.Debug("Not collecting bonding, file does not exist", "file", statusfile)
return ErrNoData
}
return err
Expand Down
7 changes: 4 additions & 3 deletions collector/boot_time_bsd.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,21 +18,22 @@
package collector

import (
"github.com/go-kit/log"
"log/slog"

"github.com/prometheus/client_golang/prometheus"
"golang.org/x/sys/unix"
)

type bootTimeCollector struct {
logger log.Logger
logger *slog.Logger
}

func init() {
registerCollector("boottime", defaultEnabled, newBootTimeCollector)
}

// newBootTimeCollector returns a new Collector exposing system boot time on BSD systems.
func newBootTimeCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
func newBootTimeCollector(config *NodeCollectorConfig, logger *slog.Logger) (Collector, error) {
return &bootTimeCollector{
logger: logger,
}, nil
Expand Down
7 changes: 4 additions & 3 deletions collector/boot_time_solaris.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,21 +17,22 @@
package collector

import (
"github.com/go-kit/log"
"log/slog"

"github.com/illumos/go-kstat"
"github.com/prometheus/client_golang/prometheus"
)

type bootTimeCollector struct {
boottime typedDesc
logger log.Logger
logger *slog.Logger
}

func init() {
registerCollector("boottime", defaultEnabled, newBootTimeCollector)
}

func newBootTimeCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
func newBootTimeCollector(config *NodeCollectorConfig, logger *slog.Logger) (Collector, error) {
return &bootTimeCollector{
boottime: typedDesc{
prometheus.NewDesc(
Expand Down
23 changes: 10 additions & 13 deletions collector/btrfs_linux.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,21 +18,20 @@ package collector

import (
"fmt"
"log/slog"
"path"
"strings"
"syscall"

dennwc "github.com/dennwc/btrfs"
"github.com/go-kit/log"
"github.com/go-kit/log/level"
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/procfs/btrfs"
)

// A btrfsCollector is a Collector which gathers metrics from Btrfs filesystems.
type btrfsCollector struct {
fs btrfs.FS
logger log.Logger
logger *slog.Logger
config *NodeCollectorConfig
}

Expand All @@ -41,7 +40,7 @@ func init() {
}

// NewBtrfsCollector returns a new Collector exposing Btrfs statistics.
func NewBtrfsCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
func NewBtrfsCollector(config *NodeCollectorConfig, logger *slog.Logger) (Collector, error) {
fs, err := btrfs.NewFS(*config.Path.SysPath)
if err != nil {
return nil, fmt.Errorf("failed to open sysfs: %w", err)
Expand All @@ -64,9 +63,7 @@ func (c *btrfsCollector) Update(ch chan<- prometheus.Metric) error {

ioctlStatsMap, err := c.getIoctlStats()
if err != nil {
level.Debug(c.logger).Log(
"msg", "Error querying btrfs device stats with ioctl",
"err", err)
c.logger.Debug("Error querying btrfs device stats with ioctl", "err", err)
ioctlStatsMap = make(map[string]*btrfsIoctlFsStats)
}

Expand Down Expand Up @@ -131,8 +128,8 @@ func (c *btrfsCollector) getIoctlStats() (map[string]*btrfsIoctlFsStats, error)
if err != nil {
// Failed to open this mount point, maybe we didn't have permission
// maybe we'll find another mount point for this FS later.
level.Debug(c.logger).Log(
"msg", "Error inspecting btrfs mountpoint",
c.logger.Debug(
"Error inspecting btrfs mountpoint",
"mountPoint", mountPath,
"err", err)
continue
Expand All @@ -143,8 +140,8 @@ func (c *btrfsCollector) getIoctlStats() (map[string]*btrfsIoctlFsStats, error)
if err != nil {
// Failed to get the FS info for some reason,
// perhaps it'll work with a different mount point
level.Debug(c.logger).Log(
"msg", "Error querying btrfs filesystem",
c.logger.Debug(
"Error querying btrfs filesystem",
"mountPoint", mountPath,
"err", err)
continue
Expand All @@ -158,8 +155,8 @@ func (c *btrfsCollector) getIoctlStats() (map[string]*btrfsIoctlFsStats, error)

deviceStats, err := c.getIoctlDeviceStats(fs, &fsInfo)
if err != nil {
level.Debug(c.logger).Log(
"msg", "Error querying btrfs device stats",
c.logger.Debug(
"Error querying btrfs device stats",
"mountPoint", mountPath,
"err", err)
continue
Expand Down
9 changes: 4 additions & 5 deletions collector/buddyinfo.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,9 @@ package collector

import (
"fmt"
"log/slog"
"strconv"

"github.com/go-kit/log"
"github.com/go-kit/log/level"
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/procfs"
)
Expand All @@ -33,15 +32,15 @@ const (
type buddyinfoCollector struct {
fs procfs.FS
desc *prometheus.Desc
logger log.Logger
logger *slog.Logger
}

func init() {
registerCollector("buddyinfo", defaultDisabled, NewBuddyinfoCollector)
}

// NewBuddyinfoCollector returns a new Collector exposing buddyinfo stats.
func NewBuddyinfoCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
func NewBuddyinfoCollector(config *NodeCollectorConfig, logger *slog.Logger) (Collector, error) {
desc := prometheus.NewDesc(
prometheus.BuildFQName(namespace, buddyInfoSubsystem, "blocks"),
"Count of free blocks according to size.",
Expand All @@ -62,7 +61,7 @@ func (c *buddyinfoCollector) Update(ch chan<- prometheus.Metric) error {
return fmt.Errorf("couldn't get buddyinfo: %w", err)
}

level.Debug(c.logger).Log("msg", "Set node_buddy", "buddyInfo", buddyInfo)
c.logger.Debug("Set node_buddy", "buddyInfo", buddyInfo)
for _, entry := range buddyInfo {
for size, value := range entry.Sizes {
ch <- prometheus.MustNewConstMetric(
Expand Down
6 changes: 3 additions & 3 deletions collector/cgroups_linux.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ package collector

import (
"fmt"
"log/slog"

"github.com/go-kit/log"
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/procfs"
)
Expand All @@ -30,15 +30,15 @@ type cgroupSummaryCollector struct {
fs procfs.FS
cgroups *prometheus.Desc
enabled *prometheus.Desc
logger log.Logger
logger *slog.Logger
}

func init() {
registerCollector(cgroupsCollectorSubsystem, defaultDisabled, NewCgroupSummaryCollector)
}

// NewCgroupSummaryCollector returns a new Collector exposing a summary of cgroups.
func NewCgroupSummaryCollector(config *NodeCollectorConfig, logger log.Logger) (Collector, error) {
func NewCgroupSummaryCollector(config *NodeCollectorConfig, logger *slog.Logger) (Collector, error) {
fs, err := procfs.NewFS(*config.Path.ProcPath)
if err != nil {
return nil, fmt.Errorf("failed to open procfs: %w", err)
Expand Down
Loading