graylog

package
v1.29.0 Latest Latest
Warning

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

Go to latest
Published: Dec 11, 2023 License: MIT Imports: 16 Imported by: 14

README

GrayLog Input Plugin

The Graylog plugin can collect data from remote Graylog service URLs.

Plugin currently support two type of end points:-

  • multiple (e.g. http://[graylog-server-ip]:9000/api/system/metrics/multiple)
  • namespace (e.g. http://[graylog-server-ip]:9000/api/system/metrics/namespace/{namespace})

End Point can be a mix of one multiple end point and several namespaces end points

Note: if namespace end point specified metrics array will be ignored for that call.

Global configuration options

In addition to the plugin-specific configuration settings, plugins support additional global and plugin configuration settings. These settings are used to modify metrics, tags, and field or create aliases and configure ordering, etc. See the CONFIGURATION.md for more details.

Configuration

# Read flattened metrics from one or more GrayLog HTTP endpoints
[[inputs.graylog]]
  ## API endpoint, currently supported API:
  ##
  ##   - multiple  (e.g. http://<host>:9000/api/system/metrics/multiple)
  ##   - namespace (e.g. http://<host>:9000/api/system/metrics/namespace/{namespace})
  ##
  ## For namespace endpoint, the metrics array will be ignored for that call.
  ## Endpoint can contain namespace and multiple type calls.
  ##
  ## Please check http://[graylog-server-ip]:9000/api/api-browser for full list
  ## of endpoints
  servers = [
    "http://[graylog-server-ip]:9000/api/system/metrics/multiple",
  ]

  ## Set timeout (default 5 seconds)
  # timeout = "5s"

  ## Metrics list
  ## List of metrics can be found on Graylog webservice documentation.
  ## Or by hitting the web service api at:
  ##   http://[graylog-host]:9000/api/system/metrics
  metrics = [
    "jvm.cl.loaded",
    "jvm.memory.pools.Metaspace.committed"
  ]

  ## Username and password
  username = ""
  password = ""

  ## Optional TLS Config
  # tls_ca = "/etc/telegraf/ca.pem"
  # tls_cert = "/etc/telegraf/cert.pem"
  # tls_key = "/etc/telegraf/key.pem"
  ## Use TLS but skip chain & host verification
  # insecure_skip_verify = false

Please refer to GrayLog metrics api browser for full metric end points: http://host:9000/api/api-browser

Metrics

Example Output

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type GrayLog

type GrayLog struct {
	Servers  []string        `toml:"servers"`
	Metrics  []string        `toml:"metrics"`
	Username string          `toml:"username"`
	Password string          `toml:"password"`
	Timeout  config.Duration `toml:"timeout"`

	tls.ClientConfig
	// contains filtered or unexported fields
}

func (*GrayLog) Gather

func (h *GrayLog) Gather(acc telegraf.Accumulator) error

Gathers data for all servers.

func (*GrayLog) SampleConfig

func (*GrayLog) SampleConfig() string

type HTTPClient

type HTTPClient interface {
	// Returns the result of an http request
	//
	// Parameters:
	// req: HTTP request object
	//
	// Returns:
	// http.Response:  HTTP response object
	// error        :  Any error that may have occurred
	MakeRequest(req *http.Request) (*http.Response, error)

	SetHTTPClient(client *http.Client)
	HTTPClient() *http.Client
}

type Messagebody

type Messagebody struct {
	Metrics []string `json:"metrics"`
}

type Metric

type Metric struct {
	FullName string                 `json:"full_name"`
	Name     string                 `json:"name"`
	Type     string                 `json:"type"`
	Fields   map[string]interface{} `json:"metric"`
}

type RealHTTPClient

type RealHTTPClient struct {
	// contains filtered or unexported fields
}

func (*RealHTTPClient) HTTPClient

func (c *RealHTTPClient) HTTPClient() *http.Client

func (*RealHTTPClient) MakeRequest

func (c *RealHTTPClient) MakeRequest(req *http.Request) (*http.Response, error)

func (*RealHTTPClient) SetHTTPClient

func (c *RealHTTPClient) SetHTTPClient(client *http.Client)

type ResponseMetrics

type ResponseMetrics struct {
	Metrics []Metric `json:"metrics"`
}

Jump to

Keyboard shortcuts

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