cloudprober

package module
v0.13.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 23, 2024 License: Apache-2.0 Imports: 25 Imported by: 4

README

Docker Pulls Go Build and Test Security Rating Maintainability Rating

NOTE: Cloudprober's active development moved from google/cloudprober to cloudprober/cloudprober in Nov, 2021. We lost a bunch of Github stars (1400) in the process. See the about page to learn more about the history of Cloudprober.

Cloudprober is a monitoring software that makes it super-easy to monitor availability and performance of various components of your system. Cloudprober employs the "active" monitoring model. It runs probes against (or on) your components to verify that they are working as expected. For example, it can run a probe to verify that your frontends can reach your backends. Similarly it can run a probe to verify that your in-Cloud VMs can actually reach your on-premise systems. This kind of monitoring makes it possible to monitor your systems' interfaces regardless of the implementation and helps you quickly pin down what's broken in your system.

Cloudprober Use Case

Features

  • Out of the box, config based, integration with many popular monitoring systems:

  • Multiple options for checks:

  • Automated targets discovery to make Cloud deployments as painless as possible:

    • Kubernetes resources.
    • GCP instances, forwarding rules, and pub/sub messages.
    • File based targets.
  • Deployment friendly:

    • Written entirely in Go, and compiles into a static binary.
    • Deploy as a standalone binary, or through docker containers.
    • Continuous, automated target discovery, to ensure that most infrastructure changes don't require re-deployment.
  • Low footprint. Cloudprober takes advantage of the Go's concurrency paradigms, and makes most of the available processing power.

  • Configurable metrics:

    • Configurable metrics labels, based on the resource labels.
    • Latency histograms for percentile calculations.
  • Extensible architecture. Cloudprober can be easily extended along most of the dimensions. Adding support for other Cloud targets, monitoring systems and even a new probe type, is straight-forward and fairly easy.

Getting Started

Visit Getting Started page to get started with Cloudprober.

Feedback

We'd love to hear your feedback. If you're using Cloudprober, would you please mind sharing how you use it by adding a comment here. It will be a great help in planning Cloudprober's future progression.

Join Cloudprober Slack or Github discussions for questions and discussion about Cloudprober.

Documentation

Overview

Package cloudprober provides a prober for running a set of probes.

Cloudprober takes in a config proto which dictates what probes should be created with what configuration, and manages the asynchronous fan-in/fan-out of the metrics data from these probes.

Index

Constants

View Source
const (
	DefaultServerHost   = ""
	DefaultServerPort   = 9313
	ServerHostEnvVar    = "CLOUDPROBER_HOST"
	ServerPortEnvVar    = "CLOUDPROBER_PORT"
	DisableHTTPDebugVar = "CLOUDPROBER_DISABLE_HTTP_PPROF"
)

Constants defining the default server host and port.

Variables

This section is empty.

Functions

func GetConfig

func GetConfig() *configpb.ProberConfig

GetConfig returns the prober config.

func GetInfo

GetInfo returns information on all the probes, servers and surfacers.

func GetParsedConfig added in v0.13.0

func GetParsedConfig() string

GetParsedConfig returns the parsed prober config.

func GetProber added in v0.13.1

func GetProber() *prober.Prober

func GetRawConfig added in v0.13.0

func GetRawConfig() string

GetRawConfig returns the prober config in text proto format.

func Init added in v0.13.1

func Init() error

Init initializes Cloudprober using the default config source.

func InitFromConfig

func InitFromConfig(configFile string) error

InitFromConfig initializes Cloudprober using the provided config.

func InitWithConfigSource added in v0.13.1

func InitWithConfigSource(configSrc config.ConfigSource) error

func Start

func Start(ctx context.Context)

Start starts a previously initialized Cloudprober.

Types

This section is empty.

Directories

Path Synopsis
Binary cloudprober is a tool for running a set of probes and metric surfacers on a GCE VM.
Binary cloudprober is a tool for running a set of probes and metric surfacers on a GCE VM.
common
iputils
Package iputils implements utilities to work with IP addresses.
Package iputils implements utilities to work with IP addresses.
metadata
Package metadata implements metadata related utilities.
Package metadata implements metadata related utilities.
strtemplate
Package strtemplate implements string templating functionality for Cloudprober.
Package strtemplate implements string templating functionality for Cloudprober.
Package config provides parser for cloudprober configs.
Package config provides parser for cloudprober configs.
runconfig
Package runconfig stores cloudprober config that is specific to a single invocation.
Package runconfig stores cloudprober config that is specific to a single invocation.
contrib
gcp/bigquery
Package bigquery connects to the GCP BigQuery API and computes metrics suitable for blackbox-probing.
Package bigquery connects to the GCP BigQuery API and computes metrics suitable for blackbox-probing.
gcp/cmd
Bigquery_probe is an external Cloudprober probe suitable for blackbox-probing the GCP BigQuery API.
Bigquery_probe is an external Cloudprober probe suitable for blackbox-probing the GCP BigQuery API.
examples
external
Binary redis_probe_once implements an example cloudprober external probe that puts a key-value in a redis server, retrieves it and reports time taken for both operations.
Binary redis_probe_once implements an example cloudprober external probe that puts a key-value in a redis server, retrieves it and reports time taken for both operations.
internal
alerting
Package alerting implements alerting functionality in Cloudprober.
Package alerting implements alerting functionality in Cloudprober.
alerting/alertinfo
Package alertinfo implements AlertInfo struct for sharing alert data across modules.
Package alertinfo implements AlertInfo struct for sharing alert data across modules.
alerting/notifier
Package notifier implements notifications related functionality.
Package notifier implements notifications related functionality.
alerting/notifier/opsgenie
Package opsgenie implements Opsgenie notifications for Cloudprober alert events.
Package opsgenie implements Opsgenie notifications for Cloudprober alert events.
alerting/notifier/pagerduty
Package pagerduty implements pagerduty notifications for Cloudprober alert events.
Package pagerduty implements pagerduty notifications for Cloudprober alert events.
alerting/notifier/slack
Package slack implements slack notifications for Cloudprober alert events.
Package slack implements slack notifications for Cloudprober alert events.
file
Package file implements utilities to read files from various backends.
Package file implements utilities to read files from various backends.
httpreq
Package httputils implements HTTP related utilities.
Package httputils implements HTTP related utilities.
oauth
Package oauth implements OAuth related utilities for Cloudprober.
Package oauth implements OAuth related utilities for Cloudprober.
rds/client
Package client implements a ResourceDiscovery service (RDS) client.
Package client implements a ResourceDiscovery service (RDS) client.
rds/client/cmd
This binary implements a standalone ResourceDiscovery service (RDS) client.
This binary implements a standalone ResourceDiscovery service (RDS) client.
rds/file
Package file implements a file-based targets provider for cloudprober.
Package file implements a file-based targets provider for cloudprober.
rds/gcp
Package gcp implements a GCP (Google Compute Platform) resources provider for ResourceDiscovery server.
Package gcp implements a GCP (Google Compute Platform) resources provider for ResourceDiscovery server.
rds/kubernetes
Package kubernetes implements a kubernetes resources provider for ResourceDiscovery server.
Package kubernetes implements a kubernetes resources provider for ResourceDiscovery server.
rds/server
Package server provides a ResourceDiscovery gRPC server implementation.
Package server provides a ResourceDiscovery gRPC server implementation.
rds/server/cmd
This binary implements a stand-alone ResourceDiscovery server.
This binary implements a stand-alone ResourceDiscovery server.
rds/server/filter
Package filter implements common filters for the RDS (resource discovery service) providers.
Package filter implements common filters for the RDS (resource discovery service) providers.
servers
Package servers provides an interface to initialize cloudprober servers using servers config.
Package servers provides an interface to initialize cloudprober servers using servers config.
servers/external
Package external adds support for an external server.
Package external adds support for an external server.
servers/grpc
Package grpc provides a simple gRPC server that acts as a probe target.
Package grpc provides a simple gRPC server that acts as a probe target.
servers/http
Package http implements an HTTP server that simply returns 'ok' for any URL and sends stats on a string channel.
Package http implements an HTTP server that simply returns 'ok' for any URL and sends stats on a string channel.
servers/udp
Package udp implements a UDP server.
Package udp implements a UDP server.
servers/udp/cmd
This binary implements a stand-alone UDP server using the cloudprober/internal/servers/udp/udp package.
This binary implements a stand-alone UDP server using the cloudprober/internal/servers/udp/udp package.
sysvars
Package sysvars implements a system variables exporter.
Package sysvars implements a system variables exporter.
tlsconfig
Package tlsconfig implements utilities to parse TLSConfig.
Package tlsconfig implements utilities to parse TLSConfig.
udpmessage
Package message implements wrappers for sending and receiving messages with sequence numbers and timestamps.
Package message implements wrappers for sending and receiving messages with sequence numbers and timestamps.
validators
Package validators provides an entrypoint for the cloudprober's validators framework.
Package validators provides an entrypoint for the cloudprober's validators framework.
validators/http
Package http provides an HTTP validator for the Cloudprober's validator framework.
Package http provides an HTTP validator for the Cloudprober's validator framework.
validators/integrity
Package integrity provides data integrity validator for the Cloudprober's validator framework.
Package integrity provides data integrity validator for the Cloudprober's validator framework.
validators/json
Package json provides JSON validator for the Cloudprober's validator framework.
Package json provides JSON validator for the Cloudprober's validator framework.
validators/regex
Package regex provides regex validator for the Cloudprober's validator framework.
Package regex provides regex validator for the Cloudprober's validator framework.
Package logger provides a logger that logs to Google Cloud Logging.
Package logger provides a logger that logs to Google Cloud Logging.
Package metrics implements data types for probes generated data.
Package metrics implements data types for probes generated data.
payload
Package payload provides utilities to work with the metrics in payload.
Package payload provides utilities to work with the metrics in payload.
testutils
Package testutils provides utilities for tests.
Package testutils provides utilities for tests.
Package prober provides a prober for running a set of probes.
Package prober provides a prober for running a set of probes.
cmd
This binary implements a Cloudprober gRPC client.
This binary implements a Cloudprober gRPC client.
Package probes provides an interface to initialize probes using prober config.
Package probes provides an interface to initialize probes using prober config.
common/sched
Package sched provides utilities to schedule Probes.
Package sched provides utilities to schedule Probes.
common/statskeeper
Package statskeeper implements utilities that are shared across multiple probe types.
Package statskeeper implements utilities that are shared across multiple probe types.
dns
Package dns implements a DNS prober.
Package dns implements a DNS prober.
dns/cmd
Dns_bin implements a stand-alone dns prober binary using the cloudprober/probes/dns package.
Dns_bin implements a stand-alone dns prober binary using the cloudprober/probes/dns package.
external
Package external implements an external probe type for cloudprober.
Package external implements an external probe type for cloudprober.
external/cmd
This program implements a stand-alone external prober binary using the cloudprober/probes/external package.
This program implements a stand-alone external prober binary using the cloudprober/probes/external package.
external/serverutils
Package serverutils provides utilities to work with the cloudprober's external probe.
Package serverutils provides utilities to work with the cloudprober's external probe.
grpc
Package grpc implements a gRPC probe.
Package grpc implements a gRPC probe.
http
Package http implements HTTP probe type.
Package http implements HTTP probe type.
http/cmd
This program implements a stand-alone http prober binary using the cloudprober/http package.
This program implements a stand-alone http prober binary using the cloudprober/http package.
options
Package options provides a shared interface to common probe options.
Package options provides a shared interface to common probe options.
ping
Package ping implements a fast ping prober.
Package ping implements a fast ping prober.
ping/cmd
This program implements a stand-alone ping prober binary using the cloudprober/ping package.
This program implements a stand-alone ping prober binary using the cloudprober/ping package.
probeutils
Package probeutils implements utilities that are shared across multiple probe types.
Package probeutils implements utilities that are shared across multiple probe types.
tcp
Package tcp implements a TCP probe type.
Package tcp implements a TCP probe type.
tcp/cmd
This program implements a stand-alone TCP prober binary using the cloudprober/tcp package.
This program implements a stand-alone TCP prober binary using the cloudprober/tcp package.
udp
Package udp implements a UDP prober.
Package udp implements a UDP prober.
udp/cmd
Udp_bin implements a stand-alone udp prober binary using the cloudprober/probes/udp package.
Udp_bin implements a stand-alone udp prober binary using the cloudprober/probes/udp package.
udplistener
Package udplistener implements a UDP listener.
Package udplistener implements a UDP listener.
Package surfacers is the base package for creating Surfacer objects that are used for writing metics data to different monitoring services.
Package surfacers is the base package for creating Surfacer objects that are used for writing metics data to different monitoring services.
internal/bigquery
Package bigquery implements surfacer for bigquery insertion.
Package bigquery implements surfacer for bigquery insertion.
internal/cloudwatch
Package cloudwatch implements a surfacer to export metrics to AWS Cloudwatch.
Package cloudwatch implements a surfacer to export metrics to AWS Cloudwatch.
internal/common/compress
Package compress implements compression related utilities.
Package compress implements compression related utilities.
internal/common/options
Package options defines data structure for common surfacer options.
Package options defines data structure for common surfacer options.
internal/common/transform
Package transform implements some transformations for metrics before we export them.
Package transform implements some transformations for metrics before we export them.
internal/datadog
Package datadog implements a surfacer to export metrics to Datadog.
Package datadog implements a surfacer to export metrics to Datadog.
internal/file
Package file implements the "file" surfacer.
Package file implements the "file" surfacer.
internal/otel
Package otel provides an OpenTelemetry surfacer for Cloudprober.
Package otel provides an OpenTelemetry surfacer for Cloudprober.
internal/postgres
Package postgres implements "postgres" surfacer.
Package postgres implements "postgres" surfacer.
internal/probestatus
Package probestatus implements a surfacer that exposes probes' status over web interface.
Package probestatus implements a surfacer that exposes probes' status over web interface.
internal/prometheus
Package prometheus provides a prometheus surfacer for Cloudprober.
Package prometheus provides a prometheus surfacer for Cloudprober.
internal/pubsub
Package pubsub implements the "pubsub" surfacer.
Package pubsub implements the "pubsub" surfacer.
internal/stackdriver
Package stackdriver implements the Stackdriver version of the Surfacer object.
Package stackdriver implements the Stackdriver version of the Surfacer object.
Package targets provides the means to list and resolve targets for probers in the cloudprober framework.
Package targets provides the means to list and resolve targets for probers in the cloudprober framework.
endpoint
Package endpoint provides the type Endpoint, to be used with the targets.Targets interface.
Package endpoint provides the type Endpoint, to be used with the targets.Targets interface.
file
Package file implements a file-based targets for cloudprober.
Package file implements a file-based targets for cloudprober.
gce
Package gce implements Google Compute Engine (GCE) targets for Cloudprober.
Package gce implements Google Compute Engine (GCE) targets for Cloudprober.
lameduck
Package lameduck implements a lameducks provider.
Package lameduck implements a lameducks provider.
resolver
Package resolver provides a caching, non-blocking DNS resolver.
Package resolver provides a caching, non-blocking DNS resolver.
rtc/rtcservice
Package rtcservice provides utility functions for the cloudprober project used when dealing with the Runtime Configurator API.
Package rtcservice provides utility functions for the cloudprober project used when dealing with the Runtime Configurator API.
web
Package web provides web interface for cloudprober.
Package web provides web interface for cloudprober.
formatutils
Package formatutils provides web related utils for the cloudprober sub-packages.
Package formatutils provides web related utils for the cloudprober sub-packages.
resources
Package resources provides webpages related resources.
Package resources provides webpages related resources.
webutils
Package webutils provides web related utilities for cloudprober.
Package webutils provides web related utilities for cloudprober.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL