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

Enable SPM in Jaeger v2 #5681

Merged
merged 71 commits into from
Jul 24, 2024
Merged
Changes from 1 commit
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
6ed4f23
Create setup for enabling SPM in v2
FlamingSaint Jun 26, 2024
dc85461
Add connector to the config and add suggested changes to the Makefile
FlamingSaint Jun 27, 2024
e5d9850
Add integration test for SPM v2
FlamingSaint Jun 27, 2024
1bf0ece
fix
FlamingSaint Jun 27, 2024
8ba9818
Add suggested changes
FlamingSaint Jun 28, 2024
6f61680
Add suggested changes
FlamingSaint Jun 28, 2024
ff42224
fix CI
FlamingSaint Jun 28, 2024
0dbda14
Add changes
FlamingSaint Jun 28, 2024
591fda9
fix
FlamingSaint Jun 28, 2024
31ffea5
Add quotes
FlamingSaint Jun 28, 2024
ea0d5ec
Fix CI
FlamingSaint Jun 28, 2024
fb4b0ce
Add prometheusexporter to components.go
FlamingSaint Jun 28, 2024
231e397
Merge branch 'main' into spm
FlamingSaint Jul 3, 2024
6f42591
fix conflicts
FlamingSaint Jul 3, 2024
0cb5f7a
Use microsim v0.4.1 in docker-compose-v2.yml
FlamingSaint Jul 3, 2024
91987df
Added suggested changes and ran go mod tidy
FlamingSaint Jul 3, 2024
c49e322
Merge branch 'main' into spm
FlamingSaint Jul 3, 2024
43b2e72
Add back the endpoint
FlamingSaint Jul 3, 2024
5e9d0e4
Merge branch 'main' into spm
FlamingSaint Jul 3, 2024
977c9d1
Merge branch 'main' into spm
FlamingSaint Jul 3, 2024
e926e8a
Merge branch 'jaegertracing:main' into spm
FlamingSaint Jul 6, 2024
4ba0ad0
Add config for metrics_storage
FlamingSaint Jul 6, 2024
5675055
Separate TracesBackend and MetricsBackend
FlamingSaint Jul 6, 2024
6479836
Add suggested change
FlamingSaint Jul 6, 2024
14b94fe
Initialize the metrics storage in extensions.go
FlamingSaint Jul 7, 2024
c986181
Use singular naming
FlamingSaint Jul 8, 2024
5c5d701
fix naming
FlamingSaint Jul 8, 2024
21ea847
Add config options for prometheus
FlamingSaint Jul 8, 2024
1b6c9ca
Merge branch 'main' into spm
FlamingSaint Jul 8, 2024
118c8fb
Merge branch 'main' into spm
FlamingSaint Jul 8, 2024
44f2627
Resolve conflicts
FlamingSaint Jul 8, 2024
be42117
initialize metrics storage in extension.go
FlamingSaint Jul 8, 2024
c872291
Add changes
FlamingSaint Jul 8, 2024
85442e8
fix
FlamingSaint Jul 8, 2024
865d2ee
Add changes
FlamingSaint Jul 9, 2024
c6abf8b
WIP: Passed metric storage to the query service
FlamingSaint Jul 14, 2024
21f66f9
Merge branch 'main' into spm
FlamingSaint Jul 14, 2024
fa04c99
Use telset.logger instead of logger
FlamingSaint Jul 14, 2024
636191b
fix: generate mocks
FlamingSaint Jul 14, 2024
c39f8ec
Use Initialize instead of InitializeMetricsFactory
FlamingSaint Jul 14, 2024
f871540
Remove comments
FlamingSaint Jul 14, 2024
78ca11f
fix
FlamingSaint Jul 14, 2024
ed90e30
add changes
FlamingSaint Jul 14, 2024
7d4ee8e
resolve conflicts
FlamingSaint Jul 20, 2024
bae9e39
Merge branch 'main' into spm
FlamingSaint Jul 20, 2024
90176e2
Simplify
yurishkuro Jul 20, 2024
3a937b3
Simplify
yurishkuro Jul 20, 2024
f9bf6ba
Clean-up
yurishkuro Jul 20, 2024
176c332
fix
yurishkuro Jul 20, 2024
50e312c
Clean-up
yurishkuro Jul 20, 2024
f105bc9
fix
yurishkuro Jul 20, 2024
0cdb5ca
Fixes
yurishkuro Jul 20, 2024
db32afe
missed the file
yurishkuro Jul 20, 2024
2034502
Catch-all via wildcard
yurishkuro Jul 20, 2024
9d2f9b2
DRY code, rename public methods to be more consistent
yurishkuro Jul 20, 2024
4f87e23
Add changes
FlamingSaint Jul 21, 2024
7da08f3
Merge branch 'main' into spm
FlamingSaint Jul 22, 2024
0aefd7b
Increase code coverage
FlamingSaint Jul 22, 2024
81bc142
fix lint
FlamingSaint Jul 22, 2024
2e36abe
fix
FlamingSaint Jul 22, 2024
060740b
Increase coverage
FlamingSaint Jul 22, 2024
8f0ee2b
Increase coverage
FlamingSaint Jul 22, 2024
b17125a
Add changes
FlamingSaint Jul 23, 2024
f7a749e
fix
FlamingSaint Jul 23, 2024
64afe89
Merge branch 'main' into spm
FlamingSaint Jul 23, 2024
0301e64
fix
FlamingSaint Jul 24, 2024
4c51ab2
Remove extra spaces
FlamingSaint Jul 24, 2024
96649c9
Increase code coverage
FlamingSaint Jul 24, 2024
032a860
Increase code cov
FlamingSaint Jul 24, 2024
3ec5360
Increase code cov
FlamingSaint Jul 24, 2024
d641e36
Add changes
FlamingSaint Jul 24, 2024
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
Prev Previous commit
Next Next commit
Merge branch 'main' into spm
Signed-off-by: Raghuram Kannan <[email protected]>
FlamingSaint authored Jul 20, 2024
commit bae9e39f99eed0269a00f6a66ee7c2bbb65e84a6
2 changes: 2 additions & 0 deletions go.mod
Original file line number Diff line number Diff line change
@@ -97,6 +97,8 @@ require (
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.105.0 // indirect
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.105.0 // indirect
go.opentelemetry.io/collector/internal/globalgates v0.105.0 // indirect
go.opentelemetry.io/collector/pdata/pprofile v0.105.0 // indirect
go.opentelemetry.io/collector/pdata/testdata v0.105.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.4.0 // indirect
go.opentelemetry.io/otel/log v0.4.0 // indirect
go.opentelemetry.io/otel/sdk/log v0.4.0 // indirect

Unchanged files with check annotations Beta

mqs, err := s.createMetricStorage(host)
if err != nil {
return err

Check warning on line 76 in cmd/jaeger/internal/extension/jaegerquery/server.go

Codecov / codecov/patch

cmd/jaeger/internal/extension/jaegerquery/server.go#L76

Added line #L76 was not covered by tests
}
// metricsQueryService, _ := disabled.NewMetricsReader()
return disabled.NewMetricsReader()
}
mf, err := jaegerstorage.GetMetricsFactory(s.config.MetricStorage, host)
if err != nil {
return nil, fmt.Errorf("cannot find metrics storage factory: %w", err)

Check warning on line 142 in cmd/jaeger/internal/extension/jaegerquery/server.go

Codecov / codecov/patch

cmd/jaeger/internal/extension/jaegerquery/server.go#L140-L142

Added lines #L140 - L142 were not covered by tests
}
// metricsReader, ok := opts.InitMetricStorage(mf, s.telset.Logger)
metricsReader, err := mf.CreateMetricsReader()
if errors.Is(err, storage.ErrMetricStorageNotConfigured) || errors.Is(err, storage.ErrMetricStorageNotSupported) {
s.telset.Logger.Info("Metric storage not created", zap.String("reason", err.Error()))
return disabled.NewMetricsReader()

Check warning on line 149 in cmd/jaeger/internal/extension/jaegerquery/server.go

Codecov / codecov/patch

cmd/jaeger/internal/extension/jaegerquery/server.go#L146-L149

Added lines #L146 - L149 were not covered by tests
}
if err != nil {
s.telset.Logger.Error("Cannot init metric storage reader", zap.Error(err))
return disabled.NewMetricsReader()

Check warning on line 153 in cmd/jaeger/internal/extension/jaegerquery/server.go

Codecov / codecov/patch

cmd/jaeger/internal/extension/jaegerquery/server.go#L151-L153

Added lines #L151 - L153 were not covered by tests
}
return metricsReader, nil

Check warning on line 155 in cmd/jaeger/internal/extension/jaegerquery/server.go

Codecov / codecov/patch

cmd/jaeger/internal/extension/jaegerquery/server.go#L155

Added line #L155 was not covered by tests
}
func (s *server) makeQueryOptions() *queryApp.QueryOptions {
return nil
}
func (cfg *MetricBackends) Unmarshal(conf *confmap.Conf) error {

Check warning on line 110 in cmd/jaeger/internal/extension/jaegerstorage/config.go

Codecov / codecov/patch

cmd/jaeger/internal/extension/jaegerstorage/config.go#L110

Added line #L110 was not covered by tests
// apply defaults
if conf.IsSet("prometheus") {
v := prometheus.DefaultConfig()
cfg.Prometheus = &v

Check warning on line 114 in cmd/jaeger/internal/extension/jaegerstorage/config.go

Codecov / codecov/patch

cmd/jaeger/internal/extension/jaegerstorage/config.go#L112-L114

Added lines #L112 - L114 were not covered by tests
}
return conf.Unmarshal(cfg)

Check warning on line 116 in cmd/jaeger/internal/extension/jaegerstorage/config.go

Codecov / codecov/patch

cmd/jaeger/internal/extension/jaegerstorage/config.go#L116

Added line #L116 was not covered by tests
}
}
// GetMetricsFactory locates the extension in Host and retrieves a metrics factory from it with the given name.
func GetMetricsFactory(name string, host component.Host) (storage.MetricsFactory, error) {
var comp component.Component
for id, ext := range host.GetExtensions() {
if id.Type() == componentType {
comp = ext
break

Check warning on line 73 in cmd/jaeger/internal/extension/jaegerstorage/extension.go

Codecov / codecov/patch

cmd/jaeger/internal/extension/jaegerstorage/extension.go#L68-L73

Added lines #L68 - L73 were not covered by tests
}
}
if comp == nil {
return nil, fmt.Errorf(
"cannot find extension '%s' (make sure it's defined earlier in the config)",
componentType,
)

Check warning on line 80 in cmd/jaeger/internal/extension/jaegerstorage/extension.go

Codecov / codecov/patch

cmd/jaeger/internal/extension/jaegerstorage/extension.go#L76-L80

Added lines #L76 - L80 were not covered by tests
}
mf, ok := comp.(Extension).MetricsFactory(name)
if !ok {
return nil, fmt.Errorf(
"cannot find metric storage '%s' declared by '%s' extension",
name, componentType,
)

Check warning on line 87 in cmd/jaeger/internal/extension/jaegerstorage/extension.go

Codecov / codecov/patch

cmd/jaeger/internal/extension/jaegerstorage/extension.go#L82-L87

Added lines #L82 - L87 were not covered by tests
}
return mf, nil

Check warning on line 89 in cmd/jaeger/internal/extension/jaegerstorage/extension.go

Codecov / codecov/patch

cmd/jaeger/internal/extension/jaegerstorage/extension.go#L89

Added line #L89 was not covered by tests
}
func GetStorageFactoryV2(name string, host component.Host) (spanstore.Factory, error) {
}
for metricStorageName, cfg := range s.config.MetricBackends {
s.telset.Logger.Sugar().Infof("Initializing metrics storage '%s'", metricStorageName)
var metricsFactory storage.MetricsFactory
var err error = errors.New("empty configuration")
if cfg.Prometheus != nil {
metricsFactory, err = prometheus.NewFactoryWithConfig(*cfg.Prometheus, s.telset.Logger)

Check warning on line 142 in cmd/jaeger/internal/extension/jaegerstorage/extension.go

Codecov / codecov/patch

cmd/jaeger/internal/extension/jaegerstorage/extension.go#L138-L142

Added lines #L138 - L142 were not covered by tests
}
if err != nil {
return fmt.Errorf("failed to initialize metrics storage '%s': %w", metricStorageName, err)

Check warning on line 145 in cmd/jaeger/internal/extension/jaegerstorage/extension.go

Codecov / codecov/patch

cmd/jaeger/internal/extension/jaegerstorage/extension.go#L144-L145

Added lines #L144 - L145 were not covered by tests
}
s.metricsFactories[metricStorageName] = metricsFactory

Check warning on line 147 in cmd/jaeger/internal/extension/jaegerstorage/extension.go

Codecov / codecov/patch

cmd/jaeger/internal/extension/jaegerstorage/extension.go#L147

Added line #L147 was not covered by tests
}
return nil
return f, ok
}
func (s *storageExt) MetricsFactory(name string) (storage.MetricsFactory, bool) {
mf, ok := s.metricsFactories[name]
return mf, ok

Check warning on line 173 in cmd/jaeger/internal/extension/jaegerstorage/extension.go

Codecov / codecov/patch

cmd/jaeger/internal/extension/jaegerstorage/extension.go#L171-L173

Added lines #L171 - L173 were not covered by tests
}
NormalizeDuration bool
}
func (c *Configuration) Validate() error {
_, err := govalidator.ValidateStruct(c)
return err

Check warning on line 41 in pkg/prometheus/config/config.go

Codecov / codecov/patch

pkg/prometheus/config/config.go#L39-L41

Added lines #L39 - L41 were not covered by tests
}
func NewFactoryWithConfig(
cfg config.Configuration,
logger *zap.Logger,
) (*Factory, error) {
if err := cfg.Validate(); err != nil {
return nil, err

Check warning on line 76 in plugin/metrics/prometheus/factory.go

Codecov / codecov/patch

plugin/metrics/prometheus/factory.go#L74-L76

Added lines #L74 - L76 were not covered by tests
}
f := NewFactory()
f.options = &Options{
Configuration: cfg,

Check warning on line 81 in plugin/metrics/prometheus/factory.go

Codecov / codecov/patch

plugin/metrics/prometheus/factory.go#L79-L81

Added lines #L79 - L81 were not covered by tests
}
err := f.Initialize(logger)
if err != nil {
return nil, err

Check warning on line 85 in plugin/metrics/prometheus/factory.go

Codecov / codecov/patch

plugin/metrics/prometheus/factory.go#L83-L85

Added lines #L83 - L85 were not covered by tests
}
return f, nil

Check warning on line 87 in plugin/metrics/prometheus/factory.go

Codecov / codecov/patch

plugin/metrics/prometheus/factory.go#L87

Added line #L87 was not covered by tests
}
You are viewing a condensed version of this merge commit. You can view the full changes here.