From 1f4e6ed95868861aae449b3630e6cfe5a2b96c93 Mon Sep 17 00:00:00 2001 From: Palash Oswal Date: Wed, 26 May 2021 15:49:00 +0530 Subject: syz-manager: add prometheus metrics * syz-manager: add prometheus metrics Add prometheus metrics client to syz-manager. Expose metrics on a new port defined in mgrconfig. Allows for prometheus to scrape metrics from syz-manager. * syz-manager: expose metrics endpoint in http server .gitignore : remove local .img path * mgrconfig: remove unnecessary config option * syz-manager: update stats to use gaugefunc added docs for prometheus exported metrics added more gaugefunc metrics Signed-off-by: Palash Oswal * syz-manager: minor changes for CI tests added periods to comments and renamed go variables Signed-off-by: Palash Oswal * syz-manager: re-position prometheus counter declaration docs updated with PR comments Signed-off-by: Palash Oswal --- .../github.com/prometheus/procfs/internal/fs/fs.go | 52 ++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 vendor/github.com/prometheus/procfs/internal/fs/fs.go (limited to 'vendor/github.com/prometheus/procfs/internal') diff --git a/vendor/github.com/prometheus/procfs/internal/fs/fs.go b/vendor/github.com/prometheus/procfs/internal/fs/fs.go new file mode 100644 index 000000000..c66a1cf80 --- /dev/null +++ b/vendor/github.com/prometheus/procfs/internal/fs/fs.go @@ -0,0 +1,52 @@ +// Copyright 2019 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package fs + +import ( + "fmt" + "os" + "path/filepath" +) + +const ( + // DefaultProcMountPoint is the common mount point of the proc filesystem. + DefaultProcMountPoint = "/proc" + + // DefaultSysMountPoint is the common mount point of the sys filesystem. + DefaultSysMountPoint = "/sys" +) + +// FS represents a pseudo-filesystem, normally /proc or /sys, which provides an +// interface to kernel data structures. +type FS string + +// NewFS returns a new FS mounted under the given mountPoint. It will error +// if the mount point can't be read. +func NewFS(mountPoint string) (FS, error) { + info, err := os.Stat(mountPoint) + if err != nil { + return "", fmt.Errorf("could not read %s: %s", mountPoint, err) + } + if !info.IsDir() { + return "", fmt.Errorf("mount point %s is not a directory", mountPoint) + } + + return FS(mountPoint), nil +} + +// Path appends the given path elements to the filesystem path, adding separators +// as necessary. +func (fs FS) Path(p ...string) string { + return filepath.Join(append([]string{string(fs)}, p...)...) +} -- cgit mrf-deployment