mirror of
https://github.com/Lusitaniae/apache_exporter.git
synced 2025-04-18 15:04:01 +03:00
Merge branch 'master' into exporter-kit-flags
This commit is contained in:
commit
8937b675d1
@ -22,6 +22,7 @@ Help on flags:
|
||||
--host_override="" Override for HTTP Host header; empty string for
|
||||
no override.
|
||||
--[no-]insecure Ignore server certificate if using https.
|
||||
--custom_headers Adds custom headers to the collector.
|
||||
--[no-]web.systemd-socket Use systemd socket activation listeners instead
|
||||
of port listeners (Linux only).
|
||||
--web.listen-address=:9117 ...
|
||||
@ -34,6 +35,7 @@ Help on flags:
|
||||
--log.format=logfmt Output format of log messages. One of: [logfmt,
|
||||
json]
|
||||
--[no-]version Show application version.
|
||||
|
||||
</pre>
|
||||
|
||||
Tested on Apache 2.2 and Apache 2.4.
|
||||
|
@ -33,6 +33,7 @@ var (
|
||||
insecure = kingpin.Flag("insecure", "Ignore server certificate if using https.").Bool()
|
||||
toolkitFlags = kingpinflag.AddFlags(kingpin.CommandLine, ":9117")
|
||||
gracefulStop = make(chan os.Signal, 1)
|
||||
customHeaders = kingpin.Flag("custom_headers", "Adds custom headers to the collector.").StringMap()
|
||||
)
|
||||
|
||||
func main() {
|
||||
@ -51,9 +52,10 @@ func main() {
|
||||
signal.Notify(gracefulStop, syscall.SIGQUIT)
|
||||
|
||||
config := &collector.Config{
|
||||
ScrapeURI: *scrapeURI,
|
||||
HostOverride: *hostOverride,
|
||||
Insecure: *insecure,
|
||||
ScrapeURI: *scrapeURI,
|
||||
HostOverride: *hostOverride,
|
||||
Insecure: *insecure,
|
||||
CustomHeaders: *customHeaders,
|
||||
}
|
||||
|
||||
exporter := collector.NewExporter(logger, config)
|
||||
|
@ -273,9 +273,10 @@ func checkApacheStatus(t *testing.T, status string, metricCount int) {
|
||||
promlogConfig := &promlog.Config{}
|
||||
logger := promlog.New(promlogConfig)
|
||||
config := &collector.Config{
|
||||
ScrapeURI: server.URL,
|
||||
HostOverride: "",
|
||||
Insecure: false,
|
||||
ScrapeURI: server.URL,
|
||||
HostOverride: "",
|
||||
Insecure: false,
|
||||
CustomHeaders: map[string]string{"Cookie": "A test cookie"},
|
||||
}
|
||||
e := collector.NewExporter(logger, config)
|
||||
ch := make(chan prometheus.Metric)
|
||||
|
@ -26,10 +26,11 @@ const (
|
||||
)
|
||||
|
||||
type Exporter struct {
|
||||
URI string
|
||||
hostOverride string
|
||||
mutex sync.Mutex
|
||||
client *http.Client
|
||||
URI string
|
||||
hostOverride string
|
||||
customHeaders map[string]string
|
||||
mutex sync.Mutex
|
||||
client *http.Client
|
||||
|
||||
up *prometheus.Desc
|
||||
scrapeFailures prometheus.Counter
|
||||
@ -56,16 +57,18 @@ type Exporter struct {
|
||||
}
|
||||
|
||||
type Config struct {
|
||||
ScrapeURI string
|
||||
HostOverride string
|
||||
Insecure bool
|
||||
ScrapeURI string
|
||||
HostOverride string
|
||||
Insecure bool
|
||||
CustomHeaders map[string]string
|
||||
}
|
||||
|
||||
func NewExporter(logger log.Logger, config *Config) *Exporter {
|
||||
return &Exporter{
|
||||
URI: config.ScrapeURI,
|
||||
hostOverride: config.HostOverride,
|
||||
logger: logger,
|
||||
URI: config.ScrapeURI,
|
||||
hostOverride: config.HostOverride,
|
||||
customHeaders: config.CustomHeaders,
|
||||
logger: logger,
|
||||
up: prometheus.NewDesc(
|
||||
prometheus.BuildFQName(namespace, "", "up"),
|
||||
"Could the apache server be reached",
|
||||
@ -276,6 +279,9 @@ func (e *Exporter) collect(ch chan<- prometheus.Metric) error {
|
||||
if err != nil {
|
||||
return fmt.Errorf("error building scraping request: %v", err)
|
||||
}
|
||||
for k, v := range e.customHeaders {
|
||||
req.Header.Add(k, v)
|
||||
}
|
||||
resp, err := e.client.Do(req)
|
||||
if err != nil {
|
||||
ch <- prometheus.MustNewConstMetric(e.up, prometheus.GaugeValue, 0)
|
||||
|
6
go.mod
6
go.mod
@ -5,7 +5,7 @@ go 1.19
|
||||
require (
|
||||
github.com/alecthomas/kingpin/v2 v2.3.2
|
||||
github.com/go-kit/log v0.2.1
|
||||
github.com/prometheus/client_golang v1.14.0
|
||||
github.com/prometheus/client_golang v1.15.0
|
||||
github.com/prometheus/common v0.42.0
|
||||
github.com/prometheus/exporter-toolkit v0.9.1
|
||||
)
|
||||
@ -16,7 +16,7 @@ require (
|
||||
github.com/cespare/xxhash/v2 v2.2.0 // indirect
|
||||
github.com/coreos/go-systemd/v22 v22.5.0 // indirect
|
||||
github.com/go-logfmt/logfmt v0.6.0 // indirect
|
||||
github.com/golang/protobuf v1.5.2 // indirect
|
||||
github.com/golang/protobuf v1.5.3 // indirect
|
||||
github.com/jpillora/backoff v1.0.0 // indirect
|
||||
github.com/kr/text v0.2.0 // indirect
|
||||
github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
|
||||
@ -32,6 +32,6 @@ require (
|
||||
golang.org/x/sys v0.6.0 // indirect
|
||||
golang.org/x/text v0.8.0 // indirect
|
||||
google.golang.org/appengine v1.6.7 // indirect
|
||||
google.golang.org/protobuf v1.28.1 // indirect
|
||||
google.golang.org/protobuf v1.30.0 // indirect
|
||||
gopkg.in/yaml.v2 v2.4.0 // indirect
|
||||
)
|
||||
|
12
go.sum
12
go.sum
@ -20,8 +20,8 @@ github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y
|
||||
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||
github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk=
|
||||
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
|
||||
github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
|
||||
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
|
||||
github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg=
|
||||
github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
|
||||
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
|
||||
github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA=
|
||||
@ -35,8 +35,8 @@ github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+
|
||||
github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
|
||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/prometheus/client_golang v1.14.0 h1:nJdhIvne2eSX/XRAFV9PcvFFRbrjbcTUj0VP62TMhnw=
|
||||
github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y=
|
||||
github.com/prometheus/client_golang v1.15.0 h1:5fCgGYogn0hFdhyhLbw7hEsWxufKtY9klyvdNfFlFhM=
|
||||
github.com/prometheus/client_golang v1.15.0/go.mod h1:e9yaBhRPU2pPNsZwE+JdQl0KEt1N9XgF6zxWmaC0xOk=
|
||||
github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4=
|
||||
github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w=
|
||||
github.com/prometheus/common v0.42.0 h1:EKsfXEYo4JpWMHH5cg+KOUWeuJSov1Id8zGR8eeI1YM=
|
||||
@ -76,8 +76,8 @@ google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6
|
||||
google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
|
||||
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
|
||||
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
|
||||
google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w=
|
||||
google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
||||
google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng=
|
||||
google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
|
||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
|
Loading…
x
Reference in New Issue
Block a user