Skip to content

Commit 7595427

Browse files
committed
chore: bump to otel version v0.120.0
Signed-off-by: Bence Csati <[email protected]>
1 parent 0b42fa8 commit 7595427

File tree

10 files changed

+168
-148
lines changed

10 files changed

+168
-148
lines changed

.github/workflows/go.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ jobs:
1919
- name: Set up Go
2020
uses: actions/setup-go@v4
2121
with:
22-
go-version: '1.22'
22+
go-version: '1.24'
2323

2424
- name: Build
2525
run: go build -v ./...

README.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ Forward is the protocol used by Fluentd to route message between peers.
4040

4141
See the default values in the method `createDefaultConfig()` in [factory.go](factory.go) file.
4242

43-
Example, for `default_labels_enabled` that will add only the `time` attribute in the log record:
43+
Example, for `default_labels_enabled` that will add only the `timestamp` attribute in the log record:
4444

4545
```yaml
4646
exporters:
@@ -52,12 +52,13 @@ exporters:
5252
tag: nginx
5353
compress_gzip: true
5454
default_labels_enabled:
55-
time: true
56-
exporter: false
57-
job: false
58-
instance: false
55+
timestamp: true
56+
level: false
57+
message: false
5958
```
6059
60+
But a best practice is to have at least `timestamp`, `level` and `message` in the exported log record to a Fluent endpoint.
61+
6162
Example with TLS enabled and shared key:
6263

6364
```yaml

config.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ type Config struct {
7272
configretry.BackOffConfig `mapstructure:"retry_on_failure"`
7373
}
7474

75+
// Endpoint defines the address of the server to connect to.
7576
type Endpoint struct {
7677
// TCPAddr is the address of the server to connect to.
7778
TCPAddr string `mapstructure:"tcp_addr"`

config_test.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,9 @@ func TestLoadConfigNewExporter(t *testing.T) {
5555
Tag: "tag",
5656
CompressGzip: false,
5757
DefaultLabelsEnabled: map[string]bool{
58-
"time": true,
59-
"exporter": true,
60-
"job": true,
61-
"instance": true,
58+
"timestamp": true,
59+
"level": true,
60+
"message": true,
6261
},
6362
BackOffConfig: configretry.BackOffConfig{
6463
Enabled: true,

exporter.go

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,11 @@ import (
88
"fmt"
99
"strings"
1010
"sync"
11+
"time"
1112

1213
fclient "github.com/IBM/fluent-forward-go/fluent/client"
1314
"github.com/IBM/fluent-forward-go/fluent/protocol"
15+
fproto "github.com/IBM/fluent-forward-go/fluent/protocol"
1416
"go.opentelemetry.io/collector/component"
1517
"go.opentelemetry.io/collector/pdata/pcommon"
1618
"go.opentelemetry.io/collector/pdata/plog"
@@ -86,7 +88,7 @@ func (f *fluentforwardExporter) connectForward() {
8688

8789
func (f *fluentforwardExporter) pushLogData(ctx context.Context, ld plog.Logs) error {
8890
// move for loops into a translator
89-
entries := []protocol.EntryExt{}
91+
entries := []fproto.EntryExt{}
9092
rls := ld.ResourceLogs()
9193
for i := 0; i < rls.Len(); i++ {
9294
ills := rls.At(i).ScopeLogs()
@@ -95,8 +97,8 @@ func (f *fluentforwardExporter) pushLogData(ctx context.Context, ld plog.Logs) e
9597
logs := ills.At(j).LogRecords()
9698
for k := 0; k < logs.Len(); k++ {
9799
log := logs.At(k)
98-
entry := protocol.EntryExt{
99-
Timestamp: protocol.EventTimeNow(),
100+
entry := fproto.EntryExt{
101+
Timestamp: fproto.EventTimeNow(),
100102
Record: f.convertLogToMap(log, rls.At(i)),
101103
}
102104
entries = append(entries, entry)
@@ -113,16 +115,24 @@ func (f *fluentforwardExporter) pushLogData(ctx context.Context, ld plog.Logs) e
113115
func (f *fluentforwardExporter) convertLogToMap(lr plog.LogRecord, res plog.ResourceLogs) map[string]interface{} {
114116
// move function into a translator
115117
m := make(map[string]interface{})
116-
m["severity"] = lr.SeverityText()
117-
m["message"] = lr.Body().AsString()
118-
for key, val := range f.config.DefaultLabelsEnabled {
119-
if val {
120-
attribute, found := lr.Attributes().Get(key)
121-
if found {
122-
m[key] = attribute.AsString()
118+
for k, v := range f.config.DefaultLabelsEnabled {
119+
if v {
120+
switch k {
121+
case "level":
122+
m[k] = lr.SeverityText()
123+
case "message":
124+
m[k] = lr.Body().AsString()
125+
case "timestamp":
126+
m[k] = lr.Timestamp().AsTime().UTC().Format(time.RFC3339Nano)
123127
}
124128
}
125129
}
130+
131+
lr.Attributes().Range(func(k string, v pcommon.Value) bool {
132+
m[k] = v.AsString()
133+
return true
134+
})
135+
126136
if f.config.KubernetesMetadata != nil {
127137
key := f.config.KubernetesMetadata.Key
128138
if f.config.KubernetesMetadata.Key == "" {
@@ -175,7 +185,7 @@ func (f *fluentforwardExporter) convertLogToMap(lr plog.LogRecord, res plog.Reso
175185

176186
type sendFunc func(string, protocol.EntryList) error
177187

178-
func (f *fluentforwardExporter) send(sendMethod sendFunc, entries []protocol.EntryExt) error {
188+
func (f *fluentforwardExporter) send(sendMethod sendFunc, entries []fproto.EntryExt) error {
179189
err := sendMethod(f.config.Tag, entries)
180190
// sometimes the connection is lost, we try to reconnect and send the data again
181191
if err != nil {
@@ -192,10 +202,10 @@ func (f *fluentforwardExporter) send(sendMethod sendFunc, entries []protocol.Ent
192202
return nil
193203
}
194204

195-
func (f *fluentforwardExporter) sendCompressed(entries []protocol.EntryExt) error {
205+
func (f *fluentforwardExporter) sendCompressed(entries []fproto.EntryExt) error {
196206
return f.send(f.client.SendCompressed, entries)
197207
}
198208

199-
func (f *fluentforwardExporter) sendForward(entries []protocol.EntryExt) error {
209+
func (f *fluentforwardExporter) sendForward(entries []fproto.EntryExt) error {
200210
return f.send(f.client.SendForward, entries)
201211
}

factory.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,9 @@ func createDefaultConfig() component.Config {
5151
Tag: "tag",
5252
CompressGzip: false,
5353
DefaultLabelsEnabled: map[string]bool{
54-
"time": true,
55-
"exporter": true,
56-
"job": true,
57-
"instance": true,
54+
"timestamp": true,
55+
"level": true,
56+
"message": true,
5857
},
5958
BackOffConfig: configretry.NewDefaultBackOffConfig(),
6059
QueueConfig: exporterhelper.NewDefaultQueueConfig(),

factory_test.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,10 +60,9 @@ func TestNewExporterFullConfig(t *testing.T) {
6060
Tag: "tag",
6161
CompressGzip: true,
6262
DefaultLabelsEnabled: map[string]bool{
63-
"time": true,
64-
"exporter": true,
65-
"job": true,
66-
"instance": true,
63+
"timestamp": true,
64+
"level": true,
65+
"message": true,
6766
},
6867
BackOffConfig: configretry.BackOffConfig{
6968
Enabled: true,

go.mod

Lines changed: 35 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,61 +1,62 @@
11
module github.com/axoflow/fluentforwardexporter
22

3-
go 1.22.0
4-
5-
toolchain go1.23.2
3+
go 1.24.0
64

75
require (
86
github.com/IBM/fluent-forward-go v0.2.2
97
github.com/cenkalti/backoff/v4 v4.3.0
10-
github.com/stretchr/testify v1.9.0
11-
go.opentelemetry.io/collector/component v0.112.0
12-
go.opentelemetry.io/collector/config/configretry v1.18.0
13-
go.opentelemetry.io/collector/config/configtls v1.18.0
14-
go.opentelemetry.io/collector/confmap v1.18.0
15-
go.opentelemetry.io/collector/exporter v0.112.0
16-
go.opentelemetry.io/collector/pdata v1.18.0
17-
go.opentelemetry.io/otel/metric v1.31.0
18-
go.opentelemetry.io/otel/trace v1.31.0
8+
github.com/stretchr/testify v1.10.0
9+
go.opentelemetry.io/collector/component v0.120.0
10+
go.opentelemetry.io/collector/component/componenttest v0.120.0
11+
go.opentelemetry.io/collector/config/configretry v1.26.0
12+
go.opentelemetry.io/collector/config/configtls v1.26.0
13+
go.opentelemetry.io/collector/confmap v1.24.0
14+
go.opentelemetry.io/collector/exporter v0.120.0
15+
go.opentelemetry.io/collector/pdata v1.26.0
16+
go.opentelemetry.io/otel/metric v1.34.0
17+
go.opentelemetry.io/otel/trace v1.34.0
1918
go.uber.org/zap v1.27.0
2019
)
2120

2221
require (
2322
github.com/davecgh/go-spew v1.1.1 // indirect
24-
github.com/fsnotify/fsnotify v1.7.0 // indirect
23+
github.com/fsnotify/fsnotify v1.8.0 // indirect
2524
github.com/go-logr/logr v1.4.2 // indirect
2625
github.com/go-logr/stdr v1.2.2 // indirect
2726
github.com/go-viper/mapstructure/v2 v2.2.1 // indirect
2827
github.com/gogo/protobuf v1.3.2 // indirect
2928
github.com/google/uuid v1.6.0 // indirect
30-
github.com/gorilla/websocket v1.4.2 // indirect
29+
github.com/gorilla/websocket v1.5.3 // indirect
30+
github.com/hashicorp/go-version v1.7.0 // indirect
3131
github.com/json-iterator/go v1.1.12 // indirect
3232
github.com/knadh/koanf/maps v0.1.1 // indirect
3333
github.com/knadh/koanf/providers/confmap v0.1.0 // indirect
34-
github.com/knadh/koanf/v2 v2.1.1 // indirect
34+
github.com/knadh/koanf/v2 v2.1.2 // indirect
3535
github.com/mitchellh/copystructure v1.2.0 // indirect
3636
github.com/mitchellh/reflectwalk v1.0.2 // indirect
3737
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
3838
github.com/modern-go/reflect2 v1.0.2 // indirect
39-
github.com/philhofer/fwd v1.1.1 // indirect
39+
github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c // indirect
4040
github.com/pmezard/go-difflib v1.0.0 // indirect
41-
github.com/tinylib/msgp v1.1.6 // indirect
42-
go.opentelemetry.io/collector/config/configopaque v1.18.0 // indirect
43-
go.opentelemetry.io/collector/config/configtelemetry v0.112.0 // indirect
44-
go.opentelemetry.io/collector/consumer v0.112.0 // indirect
45-
go.opentelemetry.io/collector/consumer/consumererror v0.112.0 // indirect
46-
go.opentelemetry.io/collector/extension v0.112.0 // indirect
47-
go.opentelemetry.io/collector/extension/experimental/storage v0.112.0 // indirect
48-
go.opentelemetry.io/collector/pdata/pprofile v0.112.0 // indirect
49-
go.opentelemetry.io/collector/pipeline v0.112.0 // indirect
50-
go.opentelemetry.io/otel v1.31.0 // indirect
51-
go.opentelemetry.io/otel/sdk v1.31.0 // indirect
52-
go.opentelemetry.io/otel/sdk/metric v1.31.0 // indirect
41+
github.com/tinylib/msgp v1.2.5 // indirect
42+
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
43+
go.opentelemetry.io/collector/config/configopaque v1.26.0 // indirect
44+
go.opentelemetry.io/collector/consumer v1.26.0 // indirect
45+
go.opentelemetry.io/collector/consumer/consumererror v0.120.0 // indirect
46+
go.opentelemetry.io/collector/extension v0.120.0 // indirect
47+
go.opentelemetry.io/collector/extension/xextension v0.120.0 // indirect
48+
go.opentelemetry.io/collector/featuregate v1.26.0 // indirect
49+
go.opentelemetry.io/collector/pdata/pprofile v0.120.0 // indirect
50+
go.opentelemetry.io/collector/pipeline v0.120.0 // indirect
51+
go.opentelemetry.io/otel v1.34.0 // indirect
52+
go.opentelemetry.io/otel/sdk v1.34.0 // indirect
53+
go.opentelemetry.io/otel/sdk/metric v1.34.0 // indirect
5354
go.uber.org/multierr v1.11.0 // indirect
54-
golang.org/x/net v0.28.0 // indirect
55-
golang.org/x/sys v0.26.0 // indirect
56-
golang.org/x/text v0.17.0 // indirect
57-
google.golang.org/genproto/googleapis/rpc v0.0.0-20240822170219-fc7c04adadcd // indirect
58-
google.golang.org/grpc v1.67.1 // indirect
59-
google.golang.org/protobuf v1.35.1 // indirect
55+
golang.org/x/net v0.35.0 // indirect
56+
golang.org/x/sys v0.30.0 // indirect
57+
golang.org/x/text v0.22.0 // indirect
58+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250212204824-5a70512c5d8b // indirect
59+
google.golang.org/grpc v1.70.0 // indirect
60+
google.golang.org/protobuf v1.36.5 // indirect
6061
gopkg.in/yaml.v3 v3.0.1 // indirect
6162
)

0 commit comments

Comments
 (0)