-
Notifications
You must be signed in to change notification settings - Fork 5k
Expand file tree
/
Copy pathmanager.go
More file actions
66 lines (55 loc) · 2.62 KB
/
Copy pathmanager.go
File metadata and controls
66 lines (55 loc) · 2.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
// Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
// or more contributor license agreements. Licensed under the Elastic License;
// you may not use this file except in compliance with the Elastic License.
package otelmanager
import (
"github.com/elastic/beats/v7/libbeat/common/reload"
"github.com/elastic/beats/v7/libbeat/management"
"github.com/elastic/beats/v7/libbeat/management/status"
"github.com/elastic/elastic-agent-libs/config"
"github.com/elastic/elastic-agent-libs/logp"
)
type DiagnosticExtension interface {
RegisterDiagnosticHook(name string, description string, filename string, contentType string, hook func() []byte)
}
type WithDiagnosticExtension interface {
// name is the beat name
// ext is the extension that implements the DiagnosticExtension interface
SetDiagnosticExtension(name string, ext DiagnosticExtension)
}
var _ management.Manager = (*OtelManager)(nil)
var _ WithDiagnosticExtension = (*OtelManager)(nil)
func NewOtelManager(cfg *config.C, registry *reload.Registry, logger *logp.Logger) (management.Manager, error) {
management.SetUnderAgent(true)
return &OtelManager{}, nil
}
// OtelManager is the main manager for managing beatreceivers
type OtelManager struct {
ext DiagnosticExtension
receiverName string
}
func (n *OtelManager) UpdateStatus(_ status.Status, _ string) {
// a stub implemtation for now.
// TODO(@VihasMakwana): Explore the option to tidy and refactor the status reporting for beatsreceivers.
}
func (n *OtelManager) SetStopCallback(func()) {
}
func (n *OtelManager) Stop() {}
// Enabled returns false because many places inside beats call manager.Enabled() for various purposes
// Returning true might lead to side effects.
func (n *OtelManager) Enabled() bool { return false }
func (n *OtelManager) AgentInfo() management.AgentInfo { return management.AgentInfo{} }
func (n *OtelManager) Start() error { return nil }
func (n *OtelManager) CheckRawConfig(cfg *config.C) error { return nil }
func (n *OtelManager) RegisterAction(action management.Action) {}
func (n *OtelManager) UnregisterAction(action management.Action) {}
func (n *OtelManager) SetPayload(map[string]interface{}) {}
func (n *OtelManager) RegisterDiagnosticHook(_ string, description string, filename string, contentType string, hook management.DiagnosticHook) {
if n.ext != nil {
n.ext.RegisterDiagnosticHook(n.receiverName, description, filename, contentType, hook)
}
}
func (n *OtelManager) SetDiagnosticExtension(receiverName string, ext DiagnosticExtension) {
n.ext = ext
n.receiverName = receiverName
}