Skip to content

Commit ef913b3

Browse files
blakerousemergify[bot]
authored andcommitted
Add support for running EDOT inside of running Elastic Agent (#5767)
(cherry picked from commit b07566b) # Conflicts: # NOTICE.txt # go.mod # go.sum # internal/pkg/agent/application/coordinator/coordinator_test.go # internal/pkg/otel/components.go # internal/pkg/otel/run.go
1 parent e7d9682 commit ef913b3

File tree

79 files changed

+3734
-722
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

79 files changed

+3734
-722
lines changed

.github/workflows/golangci-lint.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,10 @@ jobs:
2525
go-version-file: .go-version
2626

2727
- name: golangci-lint
28-
uses: golangci/golangci-lint-action@v6
28+
uses: golangci/golangci-lint-action@v6.1.1
2929
with:
3030
# Optional: version of golangci-lint to use in form of v1.2 or v1.2.3 or `latest` to use the latest version
31-
version: v1.55.2
31+
version: v1.61.0
3232

3333
# Give the job more time to execute.
3434
# Regarding `--whole-files`, the linter is supposed to support linting of changed a patch only but,

NOTICE.txt

+435
Large diffs are not rendered by default.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# Kind can be one of:
2+
# - breaking-change: a change to previously-documented behavior
3+
# - deprecation: functionality that is being removed in a later release
4+
# - bug-fix: fixes a problem in a previous version
5+
# - enhancement: extends functionality but does not break or fix existing behavior
6+
# - feature: new functionality
7+
# - known-issue: problems that we are aware of in a given version
8+
# - security: impacts on the security of a product or a user’s deployment.
9+
# - upgrade: important information for someone upgrading from a prior version
10+
# - other: does not fit into any of the other categories
11+
kind: feature
12+
13+
# Change summary; a 80ish characters long description of the change.
14+
summary: Add ability to run Elastic Distribution of OTel Collector at the same time as other inputs
15+
16+
# Long description; in case the summary is not enough to describe the change
17+
# this field accommodate a description without length limits.
18+
# NOTE: This field will be rendered only for breaking-change and known-issue kinds at the moment.
19+
#description:
20+
21+
# Affected component; usually one of "elastic-agent", "fleet-server", "filebeat", "metricbeat", "auditbeat", "all", etc.
22+
component: elastic-agent
23+
24+
# PR URL; optional; the PR number that added the changeset.
25+
# If not present is automatically filled by the tooling finding the PR where this changelog fragment has been added.
26+
# NOTE: the tooling supports backports, so it's able to fill the original PR number instead of the backport PR number.
27+
# Please provide it if you are adding a fragment for a different PR.
28+
pr: https://github.com/elastic/elastic-agent/pull/5767
29+
30+
# Issue URL; optional; the GitHub issue related to this changeset (either closes or is part of).
31+
# If not present is automatically filled by the tooling with the issue linked to the PR number.
32+
#issue: https://github.com/owner/repo/1234

control_v2.proto

+27
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,18 @@ enum State {
2323
ROLLBACK = 8;
2424
}
2525

26+
// CollectorComponentStatus used for OTel collector components.
27+
enum CollectorComponentStatus {
28+
StatusNone = 0;
29+
StatusStarting = 1;
30+
StatusOK = 2;
31+
StatusRecoverableError = 3;
32+
StatusPermanentError = 4;
33+
StatusFatalError = 5;
34+
StatusStopping = 6;
35+
StatusStopped = 7;
36+
}
37+
2638
// Unit Type running inside a component.
2739
enum UnitType {
2840
INPUT = 0;
@@ -173,6 +185,18 @@ message StateAgentInfo {
173185
bool isManaged = 8;
174186
}
175187

188+
// CollectorComponent is the status of an OTel collector component.
189+
message CollectorComponent {
190+
// Status of the component.
191+
CollectorComponentStatus status = 1;
192+
// Error is set to the reported error.
193+
string error = 2;
194+
// Timestamp of status.
195+
string timestamp = 3;
196+
// Status information for sub-components of this component.
197+
map<string, CollectorComponent> ComponentStatusMap = 4;
198+
}
199+
176200
// StateResponse is the current state of Elastic Agent.
177201
// Next unused id: 8
178202
message StateResponse {
@@ -194,6 +218,9 @@ message StateResponse {
194218

195219
// Upgrade details
196220
UpgradeDetails upgrade_details = 7;
221+
222+
// OTel collector component status information.
223+
CollectorComponent collector = 8;
197224
}
198225

199226
// UpgradeDetails captures the details of an ongoing Agent upgrade.

go.mod

+96
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,21 @@ require (
4343
github.com/kardianos/service v1.2.1-0.20210728001519-a323c3813bc7
4444
github.com/magefile/mage v1.15.0
4545
github.com/oklog/ulid/v2 v2.1.0
46+
<<<<<<< HEAD
4647
github.com/open-telemetry/opentelemetry-collector-contrib/exporter/loadbalancingexporter v0.117.0
4748
github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.117.0
4849
github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.117.0
4950
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.117.0
5051
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.117.0
5152
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.117.0
53+
=======
54+
github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.113.0
55+
github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.113.0
56+
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/status v0.113.0
57+
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.113.0
58+
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.113.0
59+
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.113.0
60+
>>>>>>> b07566b96 (Add support for running EDOT inside of running Elastic Agent (#5767))
5261
github.com/otiai10/copy v1.14.0
5362
github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475
5463
github.com/rednafi/link-patrol v0.0.0-20240826150821-057643e74d4d
@@ -65,7 +74,12 @@ require (
6574
go.elastic.co/apm/v2 v2.6.2
6675
go.elastic.co/ecszap v1.0.2
6776
go.elastic.co/go-licence-detector v0.7.0
77+
<<<<<<< HEAD
6878
go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.117.0
79+
=======
80+
go.opentelemetry.io/collector/component/componentstatus v0.113.0
81+
go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.113.0
82+
>>>>>>> b07566b96 (Add support for running EDOT inside of running Elastic Agent (#5767))
6983
go.uber.org/zap v1.27.0
7084
golang.org/x/crypto v0.32.0
7185
golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56
@@ -94,6 +108,7 @@ require (
94108

95109
require (
96110
github.com/distribution/reference v0.6.0 // indirect
111+
<<<<<<< HEAD
97112
github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.117.0
98113
github.com/open-telemetry/opentelemetry-collector-contrib/exporter/elasticsearchexporter v0.117.0
99114
github.com/open-telemetry/opentelemetry-collector-contrib/exporter/fileexporter v0.117.0
@@ -130,6 +145,44 @@ require (
130145
go.opentelemetry.io/collector/processor/batchprocessor v0.117.0
131146
go.opentelemetry.io/collector/receiver v0.117.0
132147
go.opentelemetry.io/collector/receiver/otlpreceiver v0.117.0
148+
=======
149+
github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.113.0
150+
github.com/open-telemetry/opentelemetry-collector-contrib/exporter/elasticsearchexporter v0.113.0
151+
github.com/open-telemetry/opentelemetry-collector-contrib/exporter/fileexporter v0.113.0
152+
github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage/filestorage v0.113.0
153+
github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.113.0
154+
github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.113.0
155+
github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.113.0
156+
github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.113.0
157+
github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.113.0
158+
github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.113.0
159+
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.113.0
160+
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver v0.113.0
161+
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/httpcheckreceiver v0.113.0
162+
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8sclusterreceiver v0.113.0
163+
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8sobjectsreceiver v0.113.0
164+
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/kubeletstatsreceiver v0.113.0
165+
go.opentelemetry.io/collector/component v0.113.0
166+
go.opentelemetry.io/collector/confmap v1.19.0
167+
go.opentelemetry.io/collector/confmap/provider/envprovider v1.19.0
168+
go.opentelemetry.io/collector/confmap/provider/fileprovider v1.19.0
169+
go.opentelemetry.io/collector/confmap/provider/httpprovider v1.19.0
170+
go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.19.0
171+
go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.19.0
172+
go.opentelemetry.io/collector/connector v0.113.0
173+
go.opentelemetry.io/collector/exporter v0.113.0
174+
go.opentelemetry.io/collector/exporter/debugexporter v0.113.0
175+
go.opentelemetry.io/collector/exporter/otlpexporter v0.113.0
176+
go.opentelemetry.io/collector/exporter/otlphttpexporter v0.113.0
177+
go.opentelemetry.io/collector/extension v0.113.0
178+
go.opentelemetry.io/collector/extension/memorylimiterextension v0.113.0
179+
go.opentelemetry.io/collector/featuregate v1.19.0
180+
go.opentelemetry.io/collector/otelcol v0.113.0
181+
go.opentelemetry.io/collector/processor v0.113.0
182+
go.opentelemetry.io/collector/processor/batchprocessor v0.113.0
183+
go.opentelemetry.io/collector/receiver v0.113.0
184+
go.opentelemetry.io/collector/receiver/otlpreceiver v0.113.0
185+
>>>>>>> b07566b96 (Add support for running EDOT inside of running Elastic Agent (#5767))
133186
)
134187

135188
require (
@@ -499,6 +552,7 @@ require (
499552
go.elastic.co/fastjson v1.4.0 // indirect
500553
go.etcd.io/bbolt v1.3.11 // indirect
501554
go.opencensus.io v0.24.0 // indirect
555+
<<<<<<< HEAD
502556
go.opentelemetry.io/collector v0.117.0 // indirect
503557
go.opentelemetry.io/collector/client v1.23.0 // indirect
504558
go.opentelemetry.io/collector/component/componentstatus v0.117.0 // indirect
@@ -544,6 +598,48 @@ require (
544598
go.opentelemetry.io/collector/scraper/scraperhelper v0.117.0 // indirect
545599
go.opentelemetry.io/collector/semconv v0.117.0 // indirect
546600
go.opentelemetry.io/collector/service v0.117.0 // indirect
601+
=======
602+
go.opentelemetry.io/collector v0.113.0 // indirect
603+
go.opentelemetry.io/collector/client v1.19.0 // indirect
604+
go.opentelemetry.io/collector/config/configauth v0.113.0 // indirect
605+
go.opentelemetry.io/collector/config/configcompression v1.19.0 // indirect
606+
go.opentelemetry.io/collector/config/configgrpc v0.113.0 // indirect
607+
go.opentelemetry.io/collector/config/confighttp v0.113.0 // indirect
608+
go.opentelemetry.io/collector/config/confignet v1.19.0 // indirect
609+
go.opentelemetry.io/collector/config/configopaque v1.19.0 // indirect
610+
go.opentelemetry.io/collector/config/configretry v1.19.0 // indirect
611+
go.opentelemetry.io/collector/config/configtelemetry v0.113.0 // indirect
612+
go.opentelemetry.io/collector/config/configtls v1.19.0 // indirect
613+
go.opentelemetry.io/collector/config/internal v0.113.0 // indirect
614+
go.opentelemetry.io/collector/connector/connectorprofiles v0.113.0 // indirect
615+
go.opentelemetry.io/collector/connector/connectortest v0.113.0 // indirect
616+
go.opentelemetry.io/collector/consumer v0.113.0 // indirect
617+
go.opentelemetry.io/collector/consumer/consumererror v0.113.0 // indirect
618+
go.opentelemetry.io/collector/consumer/consumererror/consumererrorprofiles v0.113.0 // indirect
619+
go.opentelemetry.io/collector/consumer/consumerprofiles v0.113.0 // indirect
620+
go.opentelemetry.io/collector/consumer/consumertest v0.113.0 // indirect
621+
go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles v0.113.0 // indirect
622+
go.opentelemetry.io/collector/exporter/exporterprofiles v0.113.0 // indirect
623+
go.opentelemetry.io/collector/exporter/exportertest v0.113.0 // indirect
624+
go.opentelemetry.io/collector/extension/auth v0.113.0 // indirect
625+
go.opentelemetry.io/collector/extension/experimental/storage v0.113.0 // indirect
626+
go.opentelemetry.io/collector/extension/extensioncapabilities v0.113.0 // indirect
627+
go.opentelemetry.io/collector/filter v0.113.0 // indirect
628+
go.opentelemetry.io/collector/internal/fanoutconsumer v0.113.0 // indirect
629+
go.opentelemetry.io/collector/internal/memorylimiter v0.113.0 // indirect
630+
go.opentelemetry.io/collector/internal/sharedcomponent v0.113.0 // indirect
631+
go.opentelemetry.io/collector/pdata v1.19.0 // indirect
632+
go.opentelemetry.io/collector/pdata/pprofile v0.113.0 // indirect
633+
go.opentelemetry.io/collector/pdata/testdata v0.113.0 // indirect
634+
go.opentelemetry.io/collector/pipeline v0.113.0 // indirect
635+
go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.113.0 // indirect
636+
go.opentelemetry.io/collector/processor/processorprofiles v0.113.0 // indirect
637+
go.opentelemetry.io/collector/processor/processortest v0.113.0 // indirect
638+
go.opentelemetry.io/collector/receiver/receiverprofiles v0.113.0 // indirect
639+
go.opentelemetry.io/collector/receiver/receivertest v0.113.0 // indirect
640+
go.opentelemetry.io/collector/semconv v0.113.0 // indirect
641+
go.opentelemetry.io/collector/service v0.113.0 // indirect
642+
>>>>>>> b07566b96 (Add support for running EDOT inside of running Elastic Agent (#5767))
547643
go.opentelemetry.io/contrib/bridges/otelzap v0.6.0 // indirect
548644
go.opentelemetry.io/contrib/config v0.10.0 // indirect
549645
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.57.0 // indirect

0 commit comments

Comments
 (0)