caddyprom

package module
v0.0.0-...-0cd12d2 Latest Latest
Warning

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

Go to latest
Published: Sep 26, 2020 License: MIT Imports: 12 Imported by: 0

README

⚠ This module is deprecated! Caddy v2.2.0 (and later) contains built-in metrics support.

📣 Now that Caddy v2.2.0 has been released, I will be archiving this repository. Thanks to everyone for using and contributing to this module! It has been invaluable in making decisions toward metrics in Caddy's core!

Prometheus metrics module for Caddy v2

This implements a Caddy v2 module that exposes metrics in the Prometheus format.

To use this module, you must build a Caddy binary with the module compiled in. Use xcaddy for this.

Usage

Caddyfile

The simplest use could be in a Caddyfile like:

{
    order prometheus first
}

localhost

prometheus
JSON config

Here is an example that tracks metrics for Caddy's reverse_proxy module as well:

{
    "apps": {
        "http": {
            "servers": {
                "srv0": {
                    "listen": [
                        ":443"
                    ],
                    "routes": [
                        {
                            "handle": [
                                {
                                    "handler": "subroute",
                                    "routes": [
                                        {
                                            "handle": [
                                                {
                                                    "handler": "prometheus"
                                                },
                                                {
                                                    "handler": "reverse_proxy",
                                                    "upstreams": [
                                                        {
                                                            "dial": "10.0.0.1:80"
                                                        },
                                                        {
                                                            "dial": "10.0.0.2:80"
                                                        }
                                                    ]
                                                }
                                            ]
                                        }
                                    ]
                                }
                            ],
                            "match": [
                                {
                                    "host": [
                                        "redacted.mycompany.com"
                                    ]
                                }
                            ],
                            "terminal": true
                        }
                    ]
                }
            }
        }
    }
}

Get metrics

Then, when using a Caddy server with this module enabled:

$ curl localhost/
$ curl localhost:9180/metrics
...
caddy_http_response_size_bytes_sum{code="418",method="get"} 42
...

License

The MIT License

Copyright (c) 2020 Dave Henderson

Documentation

Overview

Package caddyprom implements a metrics module for Caddy v2 that exports in the Prometheus text format.

The simplest use could be in a Caddyfile like:

{
    order prometheus first
}
localhost

prometheus

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Metrics

type Metrics struct {
	Addr string `json:"address,omitempty"`
	Path string `json:"path,omitempty"`
	// contains filtered or unexported fields
}

Metrics -

func (Metrics) CaddyModule

func (Metrics) CaddyModule() caddy.ModuleInfo

CaddyModule returns the Caddy module information.

func (*Metrics) Provision

func (m *Metrics) Provision(ctx caddy.Context) error

Provision -

func (Metrics) ServeHTTP

func (m Metrics) ServeHTTP(w http.ResponseWriter, r *http.Request, next caddyhttp.Handler) (err error)

ServeHTTP - instrument the handler fulfils the caddyhttp.MiddlewareHandler interface

func (*Metrics) UnmarshalCaddyfile

func (m *Metrics) UnmarshalCaddyfile(d *caddyfile.Dispenser) error

UnmarshalCaddyfile -

Jump to

Keyboard shortcuts

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