Skip to content

Commit 4e7fcea

Browse files
JaredTan95atoulmeandrzej-stencel
authored
[connector/slowsql] init dir structure for slow sql connector (#42680)
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue. Ex. Adding a feature - Explain what this achieves.--> #### Description First [slowsql connector](#41610) implamentation PR. --------- Signed-off-by: Jared Tan <[email protected]> Co-authored-by: Antoine Toulme <[email protected]> Co-authored-by: Andrzej Stencel <[email protected]>
1 parent 836c3ed commit 4e7fcea

25 files changed

+950
-0
lines changed

.codecov.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,10 @@ component_management:
8484
name: connector_signaltometrics
8585
paths:
8686
- connector/signaltometricsconnector/**
87+
- component_id: connector_slowsql
88+
name: connector_slowsql
89+
paths:
90+
- connector/slowsqlconnector/**
8791
- component_id: connector_spanmetrics
8892
name: connector_spanmetrics
8993
paths:

.github/CODEOWNERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ connector/roundrobinconnector/ @open-telemetry
3838
connector/routingconnector/ @open-telemetry/collector-contrib-approvers @mwear @TylerHelmuth @evan-bradley @edmocosta
3939
connector/servicegraphconnector/ @open-telemetry/collector-contrib-approvers @mapno @JaredTan95
4040
connector/signaltometricsconnector/ @open-telemetry/collector-contrib-approvers @ChrsMark @lahsivjar
41+
connector/slowsqlconnector/ @open-telemetry/collector-contrib-approvers @JaredTan95 @Frapschen @atoulme
4142
connector/spanmetricsconnector/ @open-telemetry/collector-contrib-approvers @portertech @Frapschen @iblancasa
4243
connector/sumconnector/ @open-telemetry/collector-contrib-approvers @greatestusername @shalper2 @crobert-1
4344
exporter/alertmanagerexporter/ @open-telemetry/collector-contrib-approvers @sokoide @mcube8

.github/ISSUE_TEMPLATE/beta_stability.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ body:
3535
- connector/routing
3636
- connector/servicegraph
3737
- connector/signaltometrics
38+
- connector/slowsql
3839
- connector/spanmetrics
3940
- connector/sum
4041
- exporter/alertmanager

.github/ISSUE_TEMPLATE/bug_report.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ body:
3838
- connector/routing
3939
- connector/servicegraph
4040
- connector/signaltometrics
41+
- connector/slowsql
4142
- connector/spanmetrics
4243
- connector/sum
4344
- exporter/alertmanager

.github/ISSUE_TEMPLATE/feature_request.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ body:
3232
- connector/routing
3333
- connector/servicegraph
3434
- connector/signaltometrics
35+
- connector/slowsql
3536
- connector/spanmetrics
3637
- connector/sum
3738
- exporter/alertmanager

.github/ISSUE_TEMPLATE/other.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ body:
3232
- connector/routing
3333
- connector/servicegraph
3434
- connector/signaltometrics
35+
- connector/slowsql
3536
- connector/spanmetrics
3637
- connector/sum
3738
- exporter/alertmanager

.github/ISSUE_TEMPLATE/unmaintained.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ body:
3737
- connector/routing
3838
- connector/servicegraph
3939
- connector/signaltometrics
40+
- connector/slowsql
4041
- connector/spanmetrics
4142
- connector/sum
4243
- exporter/alertmanager

.github/component_labels.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ connector/roundrobinconnector connector/roundrobin
1919
connector/routingconnector connector/routing
2020
connector/servicegraphconnector connector/servicegraph
2121
connector/signaltometricsconnector connector/signaltometrics
22+
connector/slowsqlconnector connector/slowsql
2223
connector/spanmetricsconnector connector/spanmetrics
2324
connector/sumconnector connector/sum
2425
exporter/alertmanagerexporter exporter/alertmanager
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
include ../../Makefile.Common
Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
# SlowSQL Connector
2+
3+
<!-- status autogenerated section -->
4+
| Status | |
5+
| ------------- |-----------|
6+
| Distributions | [] |
7+
| Issues | [![Open issues](https://img.shields.io/github/issues-search/open-telemetry/opentelemetry-collector-contrib?query=is%3Aissue%20is%3Aopen%20label%3Aconnector%2Fslowsql%20&label=open&color=orange&logo=opentelemetry)](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues?q=is%3Aopen+is%3Aissue+label%3Aconnector%2Fslowsql) [![Closed issues](https://img.shields.io/github/issues-search/open-telemetry/opentelemetry-collector-contrib?query=is%3Aissue%20is%3Aclosed%20label%3Aconnector%2Fslowsql%20&label=closed&color=blue&logo=opentelemetry)](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues?q=is%3Aclosed+is%3Aissue+label%3Aconnector%2Fslowsql) |
8+
| Code coverage | [![codecov](https://codecov.io/github/open-telemetry/opentelemetry-collector-contrib/graph/main/badge.svg?component=connector_slowsql)](https://app.codecov.io/gh/open-telemetry/opentelemetry-collector-contrib/tree/main/?components%5B0%5D=connector_slowsql&displayType=list) |
9+
| [Code Owners](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/CONTRIBUTING.md#becoming-a-code-owner) | [@JaredTan95](https://www.github.com/JaredTan95), [@Frapschen](https://www.github.com/Frapschen), [@atoulme](https://www.github.com/atoulme) |
10+
11+
[development]: https://github.com/open-telemetry/opentelemetry-collector/blob/main/docs/component-stability.md#development
12+
13+
## Supported Pipeline Types
14+
15+
| [Exporter Pipeline Type] | [Receiver Pipeline Type] | [Stability Level] |
16+
| ------------------------ | ------------------------ | ----------------- |
17+
| traces | logs | [development] |
18+
19+
[Exporter Pipeline Type]: https://github.com/open-telemetry/opentelemetry-collector/blob/main/connector/README.md#exporter-pipeline-type
20+
[Receiver Pipeline Type]: https://github.com/open-telemetry/opentelemetry-collector/blob/main/connector/README.md#receiver-pipeline-type
21+
[Stability Level]: https://github.com/open-telemetry/opentelemetry-collector/blob/main/docs/component-stability.md#stability-levels
22+
<!-- end autogenerated section -->
23+
24+
## Overview
25+
26+
Generate logs from recorded [slow database statement](https://github.com/open-telemetry/semantic-conventions/blob/main/docs/exceptions/exceptions-spans.md/) associated with spans.
27+
28+
Each **log** will have _at least_ the following dimensions:
29+
- Service name
30+
- Span kind
31+
- Span name
32+
- Status code
33+
- Trace ID
34+
- Span ID
35+
- Database System
36+
- Database Statement
37+
- Database Statement Duration
38+
39+
Each log will additionally have the following attributes:
40+
- Span attributes. If you want to filter out some attributes (like only copying HTTP attributes starting with `http.`) use the [transform processor](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor/transformprocessor/).
41+
42+
## Configurations
43+
44+
If you are not already familiar with connectors, you may find it helpful to first visit the [Connectors README].
45+
46+
The following settings can be optionally configured:
47+
- `dimensions`: the list of dimensions to add to *logs* with the default dimensions defined above.
48+
Each additional dimension is defined with a `name` which is looked up in the span's collection of attributes or
49+
resource attributes (AKA process tags) such as `ip`, `host.name` or `region`.
50+
- `db_system:` the list value of span attribute `db.system`, Filter specific db systems, define those database's statements need to be collected. ref: https://opentelemetry.io/docs/specs/semconv/attributes-registry/db/
51+
- Default: `[h2, mongodb, mssql, mysql, oracle, postgresql, mariadb]`
52+
- `threshold`: define a threshold and collect when the `db.statement`, namely span duration, larger than this value.
53+
- Default: `500ms`
54+
55+
## Examples
56+
57+
The following is a simple example usage of the `slow sql` connector.
58+
59+
```yaml
60+
receivers:
61+
nop:
62+
63+
exporters:
64+
nop:
65+
66+
connectors:
67+
slowsql:
68+
threshold: 600ms
69+
dimensions:
70+
- name: k8s.namespace.name
71+
- name: k8s.pod.name
72+
73+
service:
74+
pipelines:
75+
traces:
76+
receivers: [nop]
77+
exporters: [slowsql]
78+
logs:
79+
receivers: [slowsql]
80+
exporters: [nop]
81+
```
82+
83+
The following is a more complex example usage of the `slowsql` connector using Elasticsearch as exporters.
84+
85+
```yaml
86+
receivers:
87+
otlp:
88+
protocols:
89+
grpc:
90+
http:
91+
92+
exporters:
93+
elasticsearch/slow_sql:
94+
tls:
95+
insecure: true
96+
mapping:
97+
mode: raw
98+
endpoints:
99+
- http://localhost:9200
100+
user: elastic
101+
password: elastic
102+
103+
connectors:
104+
slowsql:
105+
threshold: 600ms
106+
dimensions:
107+
- name: k8s.namespace.name
108+
- name: k8s.pod.name
109+
110+
service:
111+
pipelines:
112+
traces:
113+
receivers: [otl[]]
114+
exporters: [slowsql]
115+
logs:
116+
receivers: [slowsql]
117+
exporters: [elasticsearch/slow_sql]
118+
```
119+
120+
The full list of settings exposed for this connector is documented in [slowsqlconnector/config.go](../../connector/slowsqlconnector/config.go).
121+
### More Examples
122+
123+
For more example configuration covering various other use cases, please visit the [testdata directory](../../connector/slowsqlconnector/testdata).
124+
125+
[Connectors README]:https://github.com/open-telemetry/opentelemetry-collector/blob/main/connector/README.md

0 commit comments

Comments
 (0)