consul

package
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Oct 31, 2024 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var SDCheckInterval = flag.Duration("promscrape.consulSDCheckInterval", 30*time.Second, "Interval for checking for changes in Consul. "+
	"This works only if consul_sd_configs is configured in '-promscrape.config' file. "+
	"See https://docs.victoriametrics.com/sd_configs/#consul_sd_configs for details")

SDCheckInterval is check interval for Consul service discovery.

Functions

func AggregatedStatus

func AggregatedStatus(checks []Check) string

AggregatedStatus returns aggregated status of service node checks.

func GetToken

func GetToken(token *promauth.Secret) (string, error)

GetToken returns Consul token.

func ShouldCollectServiceByName

func ShouldCollectServiceByName(filterServices []string, serviceName string) bool

ShouldCollectServiceByName returns true if the given serviceName must be collected (present in filterServices).

Types

type Agent

type Agent struct {
	Config AgentConfig
	Member AgentMember
	Meta   map[string]string
}

Agent is Consul agent.

See https://www.consul.io/api/agent.html#read-configuration

func GetAgentInfo

func GetAgentInfo(client *discoveryutils.Client) (*Agent, error)

GetAgentInfo returns information about current consul agent.

func ParseAgent

func ParseAgent(data []byte) (*Agent, error)

ParseAgent parses Consul agent information from data.

type AgentConfig

type AgentConfig struct {
	Datacenter string
	NodeName   string
}

AgentConfig is Consul agent config.

See https://www.consul.io/api/agent.html#read-configuration

type AgentMember

type AgentMember struct {
	Addr string
}

AgentMember is Consul agent member info.

See https://www.consul.io/api/agent.html#read-configuration

type Check

type Check struct {
	CheckID string
	Status  string
}

Check is Consul check.

See https://www.consul.io/api/health.html#list-nodes-for-service

type Node

type Node struct {
	Address         string
	Datacenter      string
	Node            string
	Meta            map[string]string
	TaggedAddresses map[string]string
}

Node is Consul node.

See https://www.consul.io/api/health.html#list-nodes-for-service

type SDConfig

type SDConfig struct {
	Server     string           `yaml:"server,omitempty"`
	Token      *promauth.Secret `yaml:"token"`
	Datacenter string           `yaml:"datacenter"`

	// Namespace only supported at enterprise consul.
	// https://www.consul.io/docs/enterprise/namespaces
	Namespace string `yaml:"namespace,omitempty"`
	// Partition only supported at enterprise consul.
	// https://developer.hashicorp.com/consul/docs/enterprise/admin-partitions
	Partition string `yaml:"partition,omitempty"`

	Scheme            string                     `yaml:"scheme,omitempty"`
	Username          string                     `yaml:"username"`
	Password          *promauth.Secret           `yaml:"password"`
	HTTPClientConfig  promauth.HTTPClientConfig  `yaml:",inline"`
	ProxyURL          *proxy.URL                 `yaml:"proxy_url,omitempty"`
	ProxyClientConfig promauth.ProxyClientConfig `yaml:",inline"`
	Services          []string                   `yaml:"services,omitempty"`
	Tags              []string                   `yaml:"tags,omitempty"`
	NodeMeta          map[string]string          `yaml:"node_meta,omitempty"`
	TagSeparator      *string                    `yaml:"tag_separator,omitempty"`
	AllowStale        *bool                      `yaml:"allow_stale,omitempty"`
	// See https://developer.hashicorp.com/consul/api-docs/features/filtering
	// list of supported filters https://developer.hashicorp.com/consul/api-docs/catalog#filtering-1
	Filter string `yaml:"filter,omitempty"`
}

SDConfig represents service discovery config for Consul.

See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#consul_sd_config

func (*SDConfig) GetLabels

func (sdc *SDConfig) GetLabels(baseDir string) ([]*promutils.Labels, error)

GetLabels returns Consul labels according to sdc.

func (*SDConfig) MustStop

func (sdc *SDConfig) MustStop()

MustStop stops further usage for sdc.

type Service

type Service struct {
	ID              string
	Service         string
	Address         string
	Namespace       string
	Partition       string
	Port            int
	Tags            []string
	Meta            map[string]string
	TaggedAddresses map[string]ServiceTaggedAddress
	Datacenter      string
}

Service is Consul service.

See https://www.consul.io/api/health.html#list-nodes-for-service

type ServiceNode

type ServiceNode struct {
	Service Service
	Node    Node
	Checks  []Check
}

ServiceNode is Consul service node.

See https://www.consul.io/api/health.html#list-nodes-for-service

func ParseServiceNodes

func ParseServiceNodes(data []byte) ([]ServiceNode, error)

ParseServiceNodes return parsed slice of ServiceNode by data.

type ServiceTaggedAddress

type ServiceTaggedAddress struct {
	Address string
	Port    int
}

ServiceTaggedAddress is Consul service.

See https://www.consul.io/api/health.html#list-nodes-for-service

Jump to

Keyboard shortcuts

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