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

[8.17](backport #5767) Add support for running EDOT inside of running Elastic Agent #6629

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
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
4 changes: 2 additions & 2 deletions .github/workflows/golangci-lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,10 @@ jobs:
go-version-file: .go-version

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

# Give the job more time to execute.
# Regarding `--whole-files`, the linter is supposed to support linting of changed a patch only but,
Expand Down
435 changes: 435 additions & 0 deletions NOTICE.txt

Large diffs are not rendered by default.

32 changes: 32 additions & 0 deletions changelog/fragments/1729011748-Add-EDOT-hybrid-mode.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Kind can be one of:
# - breaking-change: a change to previously-documented behavior
# - deprecation: functionality that is being removed in a later release
# - bug-fix: fixes a problem in a previous version
# - enhancement: extends functionality but does not break or fix existing behavior
# - feature: new functionality
# - known-issue: problems that we are aware of in a given version
# - security: impacts on the security of a product or a user’s deployment.
# - upgrade: important information for someone upgrading from a prior version
# - other: does not fit into any of the other categories
kind: feature

# Change summary; a 80ish characters long description of the change.
summary: Add ability to run Elastic Distribution of OTel Collector at the same time as other inputs

# Long description; in case the summary is not enough to describe the change
# this field accommodate a description without length limits.
# NOTE: This field will be rendered only for breaking-change and known-issue kinds at the moment.
#description:

# Affected component; usually one of "elastic-agent", "fleet-server", "filebeat", "metricbeat", "auditbeat", "all", etc.
component: elastic-agent

# PR URL; optional; the PR number that added the changeset.
# If not present is automatically filled by the tooling finding the PR where this changelog fragment has been added.
# NOTE: the tooling supports backports, so it's able to fill the original PR number instead of the backport PR number.
# Please provide it if you are adding a fragment for a different PR.
pr: https://github.com/elastic/elastic-agent/pull/5767

# Issue URL; optional; the GitHub issue related to this changeset (either closes or is part of).
# If not present is automatically filled by the tooling with the issue linked to the PR number.
#issue: https://github.com/owner/repo/1234
27 changes: 27 additions & 0 deletions control_v2.proto
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,18 @@ enum State {
ROLLBACK = 8;
}

// CollectorComponentStatus used for OTel collector components.
enum CollectorComponentStatus {
StatusNone = 0;
StatusStarting = 1;
StatusOK = 2;
StatusRecoverableError = 3;
StatusPermanentError = 4;
StatusFatalError = 5;
StatusStopping = 6;
StatusStopped = 7;
}

// Unit Type running inside a component.
enum UnitType {
INPUT = 0;
Expand Down Expand Up @@ -173,6 +185,18 @@ message StateAgentInfo {
bool isManaged = 8;
}

// CollectorComponent is the status of an OTel collector component.
message CollectorComponent {
// Status of the component.
CollectorComponentStatus status = 1;
// Error is set to the reported error.
string error = 2;
// Timestamp of status.
string timestamp = 3;
// Status information for sub-components of this component.
map<string, CollectorComponent> ComponentStatusMap = 4;
}

// StateResponse is the current state of Elastic Agent.
// Next unused id: 8
message StateResponse {
Expand All @@ -194,6 +218,9 @@ message StateResponse {

// Upgrade details
UpgradeDetails upgrade_details = 7;

// OTel collector component status information.
CollectorComponent collector = 8;
}

// UpgradeDetails captures the details of an ongoing Agent upgrade.
Expand Down
96 changes: 96 additions & 0 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -43,12 +43,21 @@ require (
github.com/kardianos/service v1.2.1-0.20210728001519-a323c3813bc7
github.com/magefile/mage v1.15.0
github.com/oklog/ulid/v2 v2.1.0
<<<<<<< HEAD
github.com/open-telemetry/opentelemetry-collector-contrib/exporter/loadbalancingexporter v0.117.0
github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.117.0
github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.117.0
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.117.0
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.117.0
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.117.0
=======
github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.113.0
github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.113.0
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/status v0.113.0
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.113.0
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.113.0
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.113.0
>>>>>>> b07566b96 (Add support for running EDOT inside of running Elastic Agent (#5767))
github.com/otiai10/copy v1.14.0
github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475
github.com/rednafi/link-patrol v0.0.0-20240826150821-057643e74d4d
Expand All @@ -65,7 +74,12 @@ require (
go.elastic.co/apm/v2 v2.6.2
go.elastic.co/ecszap v1.0.2
go.elastic.co/go-licence-detector v0.7.0
<<<<<<< HEAD
go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.117.0
=======
go.opentelemetry.io/collector/component/componentstatus v0.113.0
go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.113.0
>>>>>>> b07566b96 (Add support for running EDOT inside of running Elastic Agent (#5767))
go.uber.org/zap v1.27.0
golang.org/x/crypto v0.32.0
golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56
Expand Down Expand Up @@ -94,6 +108,7 @@ require (

require (
github.com/distribution/reference v0.6.0 // indirect
<<<<<<< HEAD
github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.117.0
github.com/open-telemetry/opentelemetry-collector-contrib/exporter/elasticsearchexporter v0.117.0
github.com/open-telemetry/opentelemetry-collector-contrib/exporter/fileexporter v0.117.0
Expand Down Expand Up @@ -130,6 +145,44 @@ require (
go.opentelemetry.io/collector/processor/batchprocessor v0.117.0
go.opentelemetry.io/collector/receiver v0.117.0
go.opentelemetry.io/collector/receiver/otlpreceiver v0.117.0
=======
github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.113.0
github.com/open-telemetry/opentelemetry-collector-contrib/exporter/elasticsearchexporter v0.113.0
github.com/open-telemetry/opentelemetry-collector-contrib/exporter/fileexporter v0.113.0
github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage/filestorage v0.113.0
github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.113.0
github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.113.0
github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.113.0
github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.113.0
github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.113.0
github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.113.0
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.113.0
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver v0.113.0
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/httpcheckreceiver v0.113.0
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8sclusterreceiver v0.113.0
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8sobjectsreceiver v0.113.0
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/kubeletstatsreceiver v0.113.0
go.opentelemetry.io/collector/component v0.113.0
go.opentelemetry.io/collector/confmap v1.19.0
go.opentelemetry.io/collector/confmap/provider/envprovider v1.19.0
go.opentelemetry.io/collector/confmap/provider/fileprovider v1.19.0
go.opentelemetry.io/collector/confmap/provider/httpprovider v1.19.0
go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.19.0
go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.19.0
go.opentelemetry.io/collector/connector v0.113.0
go.opentelemetry.io/collector/exporter v0.113.0
go.opentelemetry.io/collector/exporter/debugexporter v0.113.0
go.opentelemetry.io/collector/exporter/otlpexporter v0.113.0
go.opentelemetry.io/collector/exporter/otlphttpexporter v0.113.0
go.opentelemetry.io/collector/extension v0.113.0
go.opentelemetry.io/collector/extension/memorylimiterextension v0.113.0
go.opentelemetry.io/collector/featuregate v1.19.0
go.opentelemetry.io/collector/otelcol v0.113.0
go.opentelemetry.io/collector/processor v0.113.0
go.opentelemetry.io/collector/processor/batchprocessor v0.113.0
go.opentelemetry.io/collector/receiver v0.113.0
go.opentelemetry.io/collector/receiver/otlpreceiver v0.113.0
>>>>>>> b07566b96 (Add support for running EDOT inside of running Elastic Agent (#5767))
)

require (
Expand Down Expand Up @@ -499,6 +552,7 @@ require (
go.elastic.co/fastjson v1.4.0 // indirect
go.etcd.io/bbolt v1.3.11 // indirect
go.opencensus.io v0.24.0 // indirect
<<<<<<< HEAD
go.opentelemetry.io/collector v0.117.0 // indirect
go.opentelemetry.io/collector/client v1.23.0 // indirect
go.opentelemetry.io/collector/component/componentstatus v0.117.0 // indirect
Expand Down Expand Up @@ -544,6 +598,48 @@ require (
go.opentelemetry.io/collector/scraper/scraperhelper v0.117.0 // indirect
go.opentelemetry.io/collector/semconv v0.117.0 // indirect
go.opentelemetry.io/collector/service v0.117.0 // indirect
=======
go.opentelemetry.io/collector v0.113.0 // indirect
go.opentelemetry.io/collector/client v1.19.0 // indirect
go.opentelemetry.io/collector/config/configauth v0.113.0 // indirect
go.opentelemetry.io/collector/config/configcompression v1.19.0 // indirect
go.opentelemetry.io/collector/config/configgrpc v0.113.0 // indirect
go.opentelemetry.io/collector/config/confighttp v0.113.0 // indirect
go.opentelemetry.io/collector/config/confignet v1.19.0 // indirect
go.opentelemetry.io/collector/config/configopaque v1.19.0 // indirect
go.opentelemetry.io/collector/config/configretry v1.19.0 // indirect
go.opentelemetry.io/collector/config/configtelemetry v0.113.0 // indirect
go.opentelemetry.io/collector/config/configtls v1.19.0 // indirect
go.opentelemetry.io/collector/config/internal v0.113.0 // indirect
go.opentelemetry.io/collector/connector/connectorprofiles v0.113.0 // indirect
go.opentelemetry.io/collector/connector/connectortest v0.113.0 // indirect
go.opentelemetry.io/collector/consumer v0.113.0 // indirect
go.opentelemetry.io/collector/consumer/consumererror v0.113.0 // indirect
go.opentelemetry.io/collector/consumer/consumererror/consumererrorprofiles v0.113.0 // indirect
go.opentelemetry.io/collector/consumer/consumerprofiles v0.113.0 // indirect
go.opentelemetry.io/collector/consumer/consumertest v0.113.0 // indirect
go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles v0.113.0 // indirect
go.opentelemetry.io/collector/exporter/exporterprofiles v0.113.0 // indirect
go.opentelemetry.io/collector/exporter/exportertest v0.113.0 // indirect
go.opentelemetry.io/collector/extension/auth v0.113.0 // indirect
go.opentelemetry.io/collector/extension/experimental/storage v0.113.0 // indirect
go.opentelemetry.io/collector/extension/extensioncapabilities v0.113.0 // indirect
go.opentelemetry.io/collector/filter v0.113.0 // indirect
go.opentelemetry.io/collector/internal/fanoutconsumer v0.113.0 // indirect
go.opentelemetry.io/collector/internal/memorylimiter v0.113.0 // indirect
go.opentelemetry.io/collector/internal/sharedcomponent v0.113.0 // indirect
go.opentelemetry.io/collector/pdata v1.19.0 // indirect
go.opentelemetry.io/collector/pdata/pprofile v0.113.0 // indirect
go.opentelemetry.io/collector/pdata/testdata v0.113.0 // indirect
go.opentelemetry.io/collector/pipeline v0.113.0 // indirect
go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.113.0 // indirect
go.opentelemetry.io/collector/processor/processorprofiles v0.113.0 // indirect
go.opentelemetry.io/collector/processor/processortest v0.113.0 // indirect
go.opentelemetry.io/collector/receiver/receiverprofiles v0.113.0 // indirect
go.opentelemetry.io/collector/receiver/receivertest v0.113.0 // indirect
go.opentelemetry.io/collector/semconv v0.113.0 // indirect
go.opentelemetry.io/collector/service v0.113.0 // indirect
>>>>>>> b07566b96 (Add support for running EDOT inside of running Elastic Agent (#5767))
go.opentelemetry.io/contrib/bridges/otelzap v0.6.0 // indirect
go.opentelemetry.io/contrib/config v0.10.0 // indirect
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.57.0 // indirect
Expand Down
Loading
Loading