-
Notifications
You must be signed in to change notification settings - Fork 166
Oracledb discovery #3633
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
Merged
rmfitzpatrick
merged 25 commits into
signalfx:main
from
greatestusername-splunk:oracledb-discovery
Sep 25, 2023
Merged
Oracledb discovery #3633
Changes from 21 commits
Commits
Show all changes
25 commits
Select commit
Hold shift + click to select a range
7328559
update bundled test and configs for oraclediscovery
greatestusername 5cd9a57
Merge branch 'signalfx:main' into oracledb-discovery
greatestusername-splunk 169dbfa
update bundled test and configs for oraclediscovery
greatestusername 22740a7
Merge branch 'oracledb-discovery' of https://github.com/greatestusern…
greatestusername d3eb285
running bundled_test now evaluate metrics matching
greatestusername e1fdd6e
add working bundled_test
greatestusername b140890
update fail and partial messages for receiver config variables
greatestusername d6abba9
order of bundled configs matters
greatestusername 9b6365c
make fmt and add more time
greatestusername 6dd4758
lower durations, add in args for endpoint and service
greatestusername b8b6e00
reduce time on image pull and add to windows bundle
greatestusername 60b62ba
add to bundle_windows_test
greatestusername 56e903a
Merge branch 'signalfx:main' into oracledb-discovery
greatestusername 35f5ab0
lower times on tests
greatestusername d36f0c2
address feedback on yaml template and test using env var
greatestusername 224689d
gotta make generate-metrics
greatestusername 3594b53
re-arrange bundled test
greatestusername f3aa6d1
add oracledb to the discovery readme
greatestusername b843405
make generate-metrics fmt
greatestusername 09e68ed
Merge branch 'signalfx:main' into oracledb-discovery
greatestusername a4594da
address feedback
greatestusername dfff930
Update internal/confmapprovider/discovery/README.md
greatestusername dddcf85
fix to re-check and other attribute fields
greatestusername 5f0eb86
add new test data for bundled test
greatestusername 3f64271
add generated yaml
greatestusername File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
75 changes: 75 additions & 0 deletions
75
cmd/otelcol/config/collector/config.d.linux/receivers/oracledb.discovery.yaml
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,75 @@ | ||
##################################################################################### | ||
# This file is generated by the Splunk Distribution of the OpenTelemetry Collector. # | ||
# # | ||
# It reflects the default configuration bundled in the Collector executable for use # | ||
# in discovery mode (--discovery) and is provided for reference or customization. # | ||
# Please note that any changes made to this file will need to be reconciled during # | ||
# upgrades of the Collector. # | ||
##################################################################################### | ||
# oracledb: | ||
# enabled: true | ||
# rule: | ||
# docker_observer: type == "container" and any([name, image, command], {# matches "(?i)oracle"}) and not (command matches "splunk.discovery") | ||
# host_observer: type == "hostport" and command matches "(?i)oracle" and not (command matches "splunk.discovery") | ||
# k8s_observer: type == "port" and pod.name matches "(?i)oracle" | ||
# config: | ||
# default: | ||
# endpoint: splunk.discovery.default | ||
# username: splunk.discovery.default | ||
# password: splunk.discovery.default | ||
# service: splunk.discovery.default | ||
# status: | ||
# metrics: | ||
# successful: | ||
# - strict: oracledb.cpu_time | ||
# first_only: true | ||
# log_record: | ||
# severity_text: info | ||
# body: oracledb receiver is working! | ||
# statements: | ||
# failed: | ||
# - regexp: "connection refused" | ||
# first_only: true | ||
# log_record: | ||
# severity_text: info | ||
# append_pattern: true | ||
# body: The container is not serving http connections. | ||
# - regexp: "received goaway and there are no active streams" | ||
# first_only: true | ||
# log_record: | ||
# severity_text: info | ||
# append_pattern: true | ||
# body: Unable to connect and scrape metrics. | ||
# - regexp: "dial tcp: lookup" | ||
# first_only: true | ||
# log_record: | ||
# severity_text: info | ||
# append_pattern: true | ||
# body: Unable to resolve oracledb tcp endpoint | ||
# - regexp: 'error executing select .*: EOF' | ||
# first_only: true | ||
# log_record: | ||
# severity_text: info | ||
# append_pattern: true | ||
# body: Unable to execute select from oracledb. Verify endpoint and user permissions. | ||
# partial: | ||
# - regexp: "listener does not currently know of service requested" | ||
# first_only: true | ||
# log_record: | ||
# severity_text: info | ||
# append_pattern: true | ||
# body: >- | ||
# Make sure your oracledb service is correctly specified using the | ||
# `--set splunk.discovery.receivers.oracledb.config.service="<service>"` command or the | ||
# `SPLUNK_DISCOVERY_RECEIVERS_oracledb_CONFIG_service="<service>"` environment variable. | ||
# - regexp: 'invalid username/password' | ||
# first_only: true | ||
# log_record: | ||
# severity_text: info | ||
# append_pattern: true | ||
# body: >- | ||
# Make sure your user credentials are correctly specified using the | ||
# `--set splunk.discovery.receivers.oracledb.config.username="<username>"` and | ||
# `--set splunk.discovery.receivers.oracledb.config.password="<password>"` command or the | ||
# `SPLUNK_DISCOVERY_RECEIVERS_oracledb_CONFIG_username="<username>"` and | ||
# `SPLUNK_DISCOVERY_RECEIVERS_oracledb_CONFIG_password="<password>"` environment variables. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
71 changes: 71 additions & 0 deletions
71
internal/confmapprovider/discovery/bundle/bundle.d/receivers/oracledb.discovery.yaml
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
##################################################################################### | ||
# Do not edit manually! # | ||
# All changes must be made to associated .tmpl file before running 'make bundle.d'. # | ||
##################################################################################### | ||
oracledb: | ||
enabled: true | ||
rule: | ||
docker_observer: type == "container" and any([name, image, command], {# matches "(?i)oracle"}) and not (command matches "splunk.discovery") | ||
host_observer: type == "hostport" and command matches "(?i)oracle" and not (command matches "splunk.discovery") | ||
k8s_observer: type == "port" and pod.name matches "(?i)oracle" | ||
config: | ||
default: | ||
endpoint: splunk.discovery.default | ||
username: splunk.discovery.default | ||
password: splunk.discovery.default | ||
service: splunk.discovery.default | ||
status: | ||
metrics: | ||
successful: | ||
- strict: oracledb.cpu_time | ||
first_only: true | ||
log_record: | ||
severity_text: info | ||
body: oracledb receiver is working! | ||
statements: | ||
failed: | ||
- regexp: "connection refused" | ||
first_only: true | ||
log_record: | ||
severity_text: info | ||
append_pattern: true | ||
body: The container is not serving http connections. | ||
- regexp: "received goaway and there are no active streams" | ||
first_only: true | ||
log_record: | ||
severity_text: info | ||
append_pattern: true | ||
body: Unable to connect and scrape metrics. | ||
- regexp: "dial tcp: lookup" | ||
first_only: true | ||
log_record: | ||
severity_text: info | ||
append_pattern: true | ||
body: Unable to resolve oracledb tcp endpoint | ||
- regexp: 'error executing select .*: EOF' | ||
first_only: true | ||
log_record: | ||
severity_text: info | ||
append_pattern: true | ||
body: Unable to execute select from oracledb. Verify endpoint and user permissions. | ||
partial: | ||
- regexp: "listener does not currently know of service requested" | ||
first_only: true | ||
log_record: | ||
severity_text: info | ||
append_pattern: true | ||
body: >- | ||
Make sure your oracledb service is correctly specified using the | ||
`--set splunk.discovery.receivers.oracledb.config.service="<service>"` command or the | ||
`SPLUNK_DISCOVERY_RECEIVERS_oracledb_CONFIG_service="<service>"` environment variable. | ||
- regexp: 'invalid username/password' | ||
first_only: true | ||
log_record: | ||
severity_text: info | ||
append_pattern: true | ||
body: >- | ||
Make sure your user credentials are correctly specified using the | ||
`--set splunk.discovery.receivers.oracledb.config.username="<username>"` and | ||
`--set splunk.discovery.receivers.oracledb.config.password="<password>"` command or the | ||
`SPLUNK_DISCOVERY_RECEIVERS_oracledb_CONFIG_username="<username>"` and | ||
`SPLUNK_DISCOVERY_RECEIVERS_oracledb_CONFIG_password="<password>"` environment variables. |
68 changes: 68 additions & 0 deletions
68
internal/confmapprovider/discovery/bundle/bundle.d/receivers/oracledb.discovery.yaml.tmpl
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
{{ receiver "oracledb" }}: | ||
enabled: true | ||
rule: | ||
docker_observer: type == "container" and any([name, image, command], {# matches "(?i)oracle"}) and not (command matches "splunk.discovery") | ||
host_observer: type == "hostport" and command matches "(?i)oracle" and not (command matches "splunk.discovery") | ||
k8s_observer: type == "port" and pod.name matches "(?i)oracle" | ||
config: | ||
default: | ||
endpoint: {{ defaultValue }} | ||
username: {{ defaultValue }} | ||
password: {{ defaultValue }} | ||
service: {{ defaultValue }} | ||
status: | ||
metrics: | ||
successful: | ||
- strict: oracledb.cpu_time | ||
first_only: true | ||
log_record: | ||
severity_text: info | ||
body: oracledb receiver is working! | ||
statements: | ||
failed: | ||
rmfitzpatrick marked this conversation as resolved.
Show resolved
Hide resolved
|
||
- regexp: "connection refused" | ||
first_only: true | ||
log_record: | ||
severity_text: info | ||
append_pattern: true | ||
body: The container is not serving http connections. | ||
- regexp: "received goaway and there are no active streams" | ||
first_only: true | ||
log_record: | ||
severity_text: info | ||
append_pattern: true | ||
body: Unable to connect and scrape metrics. | ||
- regexp: "dial tcp: lookup" | ||
first_only: true | ||
log_record: | ||
severity_text: info | ||
append_pattern: true | ||
body: Unable to resolve oracledb tcp endpoint | ||
- regexp: 'error executing select .*: EOF' | ||
first_only: true | ||
log_record: | ||
severity_text: info | ||
append_pattern: true | ||
body: Unable to execute select from oracledb. Verify endpoint and user permissions. | ||
partial: | ||
- regexp: "listener does not currently know of service requested" | ||
first_only: true | ||
log_record: | ||
severity_text: info | ||
append_pattern: true | ||
body: >- | ||
Make sure your oracledb service is correctly specified using the | ||
`--set {{ configProperty "service" "<service>" }}` command or the | ||
`{{ configPropertyEnvVar "service" "<service>" }}` environment variable. | ||
- regexp: 'invalid username/password' | ||
first_only: true | ||
log_record: | ||
severity_text: info | ||
append_pattern: true | ||
body: >- | ||
Make sure your user credentials are correctly specified using the | ||
`--set {{ configProperty "username" "<username>" }}` and | ||
`--set {{ configProperty "password" "<password>" }}` command or the | ||
`{{ configPropertyEnvVar "username" "<username>" }}` and | ||
`{{ configPropertyEnvVar "password" "<password>" }}` environment variables. | ||
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
// Copyright Splunk, Inc. | ||
// | ||
// Licensed under the Apache License, Version 2.0 (the "License"); | ||
// you may not use this file except in compliance with the License. | ||
// You may obtain a copy of the License at | ||
// | ||
// http://www.apache.org/licenses/LICENSE-2.0 | ||
// | ||
// Unless required by applicable law or agreed to in writing, software | ||
// distributed under the License is distributed on an "AS IS" BASIS, | ||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
// See the License for the specific language governing permissions and | ||
// limitations under the License. | ||
|
||
//go:build integration | ||
|
||
package tests | ||
|
||
import ( | ||
"fmt" | ||
"runtime" | ||
"testing" | ||
|
||
"github.com/signalfx/splunk-otel-collector/tests/testutils" | ||
) | ||
|
||
func TestOracledbDockerObserver(t *testing.T) { | ||
testutils.SkipIfNotContainerTest(t) | ||
if runtime.GOOS == "darwin" { | ||
t.Skip("unable to share sockets between mac and d4m vm: https://github.com/docker/for-mac/issues/483#issuecomment-758836836") | ||
} | ||
|
||
testutils.AssertAllMetricsReceived(t, "all.yaml", "otlp_exporter.yaml", | ||
oracledb, []testutils.CollectorBuilder{ | ||
func(c testutils.Collector) testutils.Collector { | ||
cc := c.(*testutils.CollectorContainer) | ||
cc.Container = cc.Container.WithBinds("/var/run/docker.sock:/var/run/docker.sock:ro") | ||
cc.Container = cc.Container.WillWaitForLogs("Discovering for next") | ||
cc.Container = cc.Container.WithUser(fmt.Sprintf("999:%d", testutils.GetDockerGID(t))) | ||
return cc | ||
}, | ||
func(collector testutils.Collector) testutils.Collector { | ||
return collector.WithEnv(map[string]string{ | ||
"ORACLEDB_URL": "oracle://otel:password@localhost:1521/xe", | ||
"SPLUNK_DISCOVERY_DURATION": "10s", | ||
// confirm that debug logging doesn't affect runtime | ||
"SPLUNK_DISCOVERY_LOG_LEVEL": "debug", | ||
"ORACLE_PASSWORD": "password", | ||
}).WithArgs( | ||
"--discovery", | ||
"--set", "splunk.discovery.receivers.oracledb.config.username=otel", | ||
"--set", "splunk.discovery.receivers.oracledb.config.password='${ORACLE_PASSWORD}'", | ||
"--set", "splunk.discovery.receivers.oracledb.config.endpoint=localhost:1521", | ||
"--set", "splunk.discovery.receivers.oracledb.config.service=xe", | ||
"--set", `splunk.discovery.extensions.k8s_observer.enabled=false`, | ||
"--set", `splunk.discovery.extensions.host_observer.enabled=false`, | ||
) | ||
}, | ||
}, | ||
) | ||
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
exporters: | ||
otlp: | ||
endpoint: "${OTLP_ENDPOINT}" | ||
tls: | ||
insecure: true | ||
|
||
service: | ||
telemetry: | ||
logs: | ||
level: debug | ||
pipelines: | ||
metrics: | ||
exporters: [otlp] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.