Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[receiver/bigip] Add Big-IP Metrics Receiver #9893

Merged
merged 1 commit into from
May 13, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,7 @@ receiver/awscontainerinsightreceiver/ @open-telemetry/collector-c
receiver/awsecscontainermetricsreceiver/ @open-telemetry/collector-contrib-approvers @Aneurysm9
receiver/awsfirehosereceiver/ @open-telemetry/collector-contrib-approvers @Aneurysm9
receiver/awsxrayreceiver/ @open-telemetry/collector-contrib-approvers @willarmiros
receiver/bigipreceiver/ @open-telemetry/collector-contrib-approvers @djaglowski @StefanKurek
receiver/carbonreceiver/ @open-telemetry/collector-contrib-approvers @pjanotti
receiver/cloudfoundryreceiver/ @open-telemetry/collector-contrib-approvers @agoallikmaa @pellared
receiver/collectdreceiver/ @open-telemetry/collector-contrib-approvers @owais
Expand Down
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,7 @@
- `iisreceiver`: Add implementation of IIS Metric Receiver (#8832)
- `sqlserverreceiver`: Add implementation of SQL Server Metric Receiver (#8398)
- `activedirectorydsreceiver`: Add implementation of Active Directory Domain Services metric receiver (#9359)
- `bigipreceiver`: Add implementation of F5 Big-IP Metric Receiver (#9680)

### 💡 Enhancements 💡

Expand Down
3 changes: 3 additions & 0 deletions cmd/configschema/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -335,6 +335,7 @@ require (
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awsecscontainermetricsreceiver v0.51.0 // indirect
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awsfirehosereceiver v0.51.0 // indirect
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awsxrayreceiver v0.51.0 // indirect
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/bigipreceiver v0.51.0 // indirect
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/carbonreceiver v0.51.0 // indirect
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/cloudfoundryreceiver v0.51.0 // indirect
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/collectdreceiver v0.51.0 // indirect
Expand Down Expand Up @@ -731,6 +732,8 @@ replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awsfi

replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awsxrayreceiver => ../../receiver/awsxrayreceiver

replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/bigipreceiver => ../../receiver/bigipreceiver

replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/couchdbreceiver => ../../receiver/couchdbreceiver

replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/carbonreceiver => ../../receiver/carbonreceiver
Expand Down
3 changes: 3 additions & 0 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ require (
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awsecscontainermetricsreceiver v0.51.0
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awsfirehosereceiver v0.51.0
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awsxrayreceiver v0.51.0
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/bigipreceiver v0.51.0
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/carbonreceiver v0.51.0
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/cloudfoundryreceiver v0.51.0
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/collectdreceiver v0.51.0
Expand Down Expand Up @@ -738,6 +739,8 @@ replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awsfi

replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awsxrayreceiver => ./receiver/awsxrayreceiver

replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/bigipreceiver => ./receiver/bigipreceiver

replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/carbonreceiver => ./receiver/carbonreceiver

replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/cloudfoundryreceiver => ./receiver/cloudfoundryreceiver
Expand Down
2 changes: 2 additions & 0 deletions internal/components/components.go
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ import (
"github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awsecscontainermetricsreceiver"
"github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awsfirehosereceiver"
"github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awsxrayreceiver"
"github.com/open-telemetry/opentelemetry-collector-contrib/receiver/bigipreceiver"
"github.com/open-telemetry/opentelemetry-collector-contrib/receiver/carbonreceiver"
"github.com/open-telemetry/opentelemetry-collector-contrib/receiver/cloudfoundryreceiver"
"github.com/open-telemetry/opentelemetry-collector-contrib/receiver/collectdreceiver"
Expand Down Expand Up @@ -190,6 +191,7 @@ func Components() (component.Factories, error) {
awsecscontainermetricsreceiver.NewFactory(),
awsfirehosereceiver.NewFactory(),
awsxrayreceiver.NewFactory(),
bigipreceiver.NewFactory(),
carbonreceiver.NewFactory(),
cloudfoundryreceiver.NewFactory(),
collectdreceiver.NewFactory(),
Expand Down
3 changes: 3 additions & 0 deletions internal/components/receivers_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,9 @@ func TestDefaultReceivers(t *testing.T) {
receiver: "awsxray",
skipLifecyle: true, // Requires AWS endpoint to check identity to run
},
{
receiver: "bigip",
},
{
receiver: "carbon",
getConfigFn: func() config.Receiver {
Expand Down
1 change: 1 addition & 0 deletions receiver/bigipreceiver/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
include ../../Makefile.Common
40 changes: 40 additions & 0 deletions receiver/bigipreceiver/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# F5 Big-IP Receiver

This receiver fetches stats from a F5 Big-IP node using F5's [iControl REST API](https://clouddocs.f5.com/api/icontrol-rest).

Supported pipeline types: `metrics`

## Prerequisites

This receiver supports Big-IP versions `11.6.5+`

## Configuration

The following settings are required:
- `username`
- `password`

The following settings are optional:

- `endpoint` (default: `https://localhost:443`): The URL of the Big-IP environment.
- `collection_interval` (default = `10s`): This receiver collects metrics on an interval. Valid time units are `ns`, `us` (or `µs`), `ms`, `s`, `m`, `h`.
- `tls` (defaults defined [here](https://github.com/open-telemetry/opentelemetry-collector/blob/main/config/configtls/README.md)): TLS control. By default insecure settings are rejected and certificate verification is on.

### Example Configuration

```yaml
receivers:
bigip:
collection_interval: 10s
endpoint: https://localhost:443
username: otelu
password: $BIGIP_PASSWORD
tls:
insecure_skip_verify: true
```

The full list of settings exposed for this receiver are documented [here](./config.go) with detailed sample configurations [here](./testdata/config.yaml). TLS config is documented further under the [opentelemetry collector's configtls package](https://github.com/open-telemetry/opentelemetry-collector/blob/main/config/configtls/README.md).

## Metrics

Details about the metrics produced by this receiver can be found in [documentation.md](./documentation.md)
Loading