From 4eb1948e4cdeb91cd8775643e6a2f204dfab0530 Mon Sep 17 00:00:00 2001 From: CheetoDa <31571545+Calm-Rock@users.noreply.github.com> Date: Wed, 28 Feb 2024 18:20:15 +0530 Subject: [PATCH] feat: added aws monitoring section (#4614) * feat: added aws monitoring section * chore: fix lint issues * chore: fix lint issues * feat: handle redirect for aws monitoring --------- Co-authored-by: Yunus M --- frontend/public/Logos/ec2.svg | 18 +++ frontend/public/Logos/ecs.svg | 18 +++ frontend/public/Logos/eks.svg | 2 + ...cationLogs-linuxamd64-configureReceiver.md | 31 ++++ ...ionLogs-linuxamd64-installOtelCollector.md | 113 ++++++++++++++ ...icationLogs-linuxamd64-runOtelCollector.md | 15 ++ ...cationLogs-linuxarm64-configureReceiver.md | 31 ++++ ...ionLogs-linuxarm64-installOtelCollector.md | 114 ++++++++++++++ ...icationLogs-linuxarm64-runOtelCollector.md | 15 ++ ...cationLogs-macosamd64-configureReceiver.md | 31 ++++ ...ionLogs-macosamd64-installOtelCollector.md | 113 ++++++++++++++ ...icationLogs-macosamd64-runOtelCollector.md | 15 ++ ...cationLogs-macosarm64-configureReceiver.md | 31 ++++ ...ionLogs-macosarm64-installOtelCollector.md | 113 ++++++++++++++ ...icationLogs-macosarm64-runOtelCollector.md | 15 ++ .../hostmetrics-configureHostmetricsJson.md | 15 ++ .../hostmetrics-setupOtelCollector.md | 113 ++++++++++++++ .../hostmetrics-configureHostmetricsJson.md | 15 ++ .../hostmetrics-setupOtelCollector.md | 114 ++++++++++++++ .../hostmetrics-configureHostmetricsJson.md | 15 ++ .../hostmetrics-setupOtelCollector.md | 113 ++++++++++++++ .../hostmetrics-configureHostmetricsJson.md | 15 ++ .../hostmetrics-setupOtelCollector.md | 112 ++++++++++++++ .../md-docs/ecsEc2-createDaemonService.md | 68 +++++++++ .../ECSEc2/md-docs/ecsEc2-createOtelConfig.md | 28 ++++ .../ECSEc2/md-docs/ecsEc2-sendData.md | 90 +++++++++++ .../md-docs/ecsEc2-setupDeamonService.md | 21 +++ .../ecsExternal-createDaemonService.md | 68 +++++++++ .../md-docs/ecsExternal-createOtelConfig.md | 28 ++++ .../md-docs/ecsExternal-sendData.md | 106 +++++++++++++ .../md-docs/ecsExternal-setupDeamonService.md | 21 +++ .../md-docs/ecsFargate-createOtelConfig.md | 30 ++++ ...Fargate-createSidecarCollectorContainer.md | 143 ++++++++++++++++++ .../ecsFargate-deployTaskDefinition.md | 10 ++ .../ECSFargate/md-docs/ecsFargate-sendData.md | 84 ++++++++++ .../ECSFargate/md-docs/ecsFargate-sendLogs.md | 133 ++++++++++++++++ .../EKS/eks-installOtelCollector.md | 24 +++ .../EKS/eks-monitorUsingDashboard.md | 16 ++ ...cationLogs-linuxamd64-configureReceiver.md | 2 +- ...cationLogs-linuxarm64-configureReceiver.md | 2 +- ...cationLogs-macosamd64-configureReceiver.md | 2 +- ...cationLogs-macosarm64-configureReceiver.md | 2 +- .../OnboardingContainer.tsx | 16 ++ .../Steps/MarkdownStep/MarkdownStep.tsx | 3 + .../ModuleStepsContainer.tsx | 67 ++++++++ .../constants/awsMonitoringDocFilePaths.ts | 127 ++++++++++++++++ .../constants/stepsConfig.tsx | 48 ++++++ .../utils/dataSourceUtils.ts | 46 +++++- .../OnboardingContainer/utils/getSteps.ts | 34 +++++ 49 files changed, 2401 insertions(+), 5 deletions(-) create mode 100644 frontend/public/Logos/ec2.svg create mode 100644 frontend/public/Logos/ecs.svg create mode 100644 frontend/public/Logos/eks.svg create mode 100644 frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/LinuxAMD64/appplicationLogs-linuxamd64-configureReceiver.md create mode 100644 frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/LinuxAMD64/appplicationLogs-linuxamd64-installOtelCollector.md create mode 100644 frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/LinuxAMD64/appplicationLogs-linuxamd64-runOtelCollector.md create mode 100644 frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/LinuxARM64/appplicationLogs-linuxarm64-configureReceiver.md create mode 100644 frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/LinuxARM64/appplicationLogs-linuxarm64-installOtelCollector.md create mode 100644 frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/LinuxARM64/appplicationLogs-linuxarm64-runOtelCollector.md create mode 100644 frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/MacOsAMD64/appplicationLogs-macosamd64-configureReceiver.md create mode 100644 frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/MacOsAMD64/appplicationLogs-macosamd64-installOtelCollector.md create mode 100644 frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/MacOsAMD64/appplicationLogs-macosamd64-runOtelCollector.md create mode 100644 frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/MacOsARM64/appplicationLogs-macosarm64-configureReceiver.md create mode 100644 frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/MacOsARM64/appplicationLogs-macosarm64-installOtelCollector.md create mode 100644 frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/MacOsARM64/appplicationLogs-macosarm64-runOtelCollector.md create mode 100644 frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2InfrastructureMetrics/md-docs/LinuxAMD64/hostmetrics-configureHostmetricsJson.md create mode 100644 frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2InfrastructureMetrics/md-docs/LinuxAMD64/hostmetrics-setupOtelCollector.md create mode 100644 frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2InfrastructureMetrics/md-docs/LinuxARM64/hostmetrics-configureHostmetricsJson.md create mode 100644 frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2InfrastructureMetrics/md-docs/LinuxARM64/hostmetrics-setupOtelCollector.md create mode 100644 frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2InfrastructureMetrics/md-docs/MacOsAMD64/hostmetrics-configureHostmetricsJson.md create mode 100644 frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2InfrastructureMetrics/md-docs/MacOsAMD64/hostmetrics-setupOtelCollector.md create mode 100644 frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2InfrastructureMetrics/md-docs/MacOsARM64/hostmetrics-configureHostmetricsJson.md create mode 100644 frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2InfrastructureMetrics/md-docs/MacOsARM64/hostmetrics-setupOtelCollector.md create mode 100644 frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/ECSEc2/md-docs/ecsEc2-createDaemonService.md create mode 100644 frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/ECSEc2/md-docs/ecsEc2-createOtelConfig.md create mode 100644 frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/ECSEc2/md-docs/ecsEc2-sendData.md create mode 100644 frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/ECSEc2/md-docs/ecsEc2-setupDeamonService.md create mode 100644 frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/ECSExternal/md-docs/ecsExternal-createDaemonService.md create mode 100644 frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/ECSExternal/md-docs/ecsExternal-createOtelConfig.md create mode 100644 frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/ECSExternal/md-docs/ecsExternal-sendData.md create mode 100644 frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/ECSExternal/md-docs/ecsExternal-setupDeamonService.md create mode 100644 frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/ECSFargate/md-docs/ecsFargate-createOtelConfig.md create mode 100644 frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/ECSFargate/md-docs/ecsFargate-createSidecarCollectorContainer.md create mode 100644 frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/ECSFargate/md-docs/ecsFargate-deployTaskDefinition.md create mode 100644 frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/ECSFargate/md-docs/ecsFargate-sendData.md create mode 100644 frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/ECSFargate/md-docs/ecsFargate-sendLogs.md create mode 100644 frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EKS/eks-installOtelCollector.md create mode 100644 frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EKS/eks-monitorUsingDashboard.md create mode 100644 frontend/src/container/OnboardingContainer/constants/awsMonitoringDocFilePaths.ts diff --git a/frontend/public/Logos/ec2.svg b/frontend/public/Logos/ec2.svg new file mode 100644 index 0000000000..14f083fd6d --- /dev/null +++ b/frontend/public/Logos/ec2.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/64/Arch_Amazon-EC2_64 + Created with Sketch. + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/public/Logos/ecs.svg b/frontend/public/Logos/ecs.svg new file mode 100644 index 0000000000..c2ef4c212f --- /dev/null +++ b/frontend/public/Logos/ecs.svg @@ -0,0 +1,18 @@ + + + + Icon-Architecture/64/Arch_Amazon-Elastic-Container-Service_64 + Created with Sketch. + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/public/Logos/eks.svg b/frontend/public/Logos/eks.svg new file mode 100644 index 0000000000..b4a9336b1e --- /dev/null +++ b/frontend/public/Logos/eks.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/LinuxAMD64/appplicationLogs-linuxamd64-configureReceiver.md b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/LinuxAMD64/appplicationLogs-linuxamd64-configureReceiver.md new file mode 100644 index 0000000000..435465fb71 --- /dev/null +++ b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/LinuxAMD64/appplicationLogs-linuxamd64-configureReceiver.md @@ -0,0 +1,31 @@ +### Step 1: Add filelog receiver to `config.yaml` file of otel collector + +Add the filelog receiver in the receivers section of `config.yaml` file of the **`otecol-contrib`** directory that you created in the previous step + +```bash +receivers: + ... + filelog/app: + include: [ /tmp/app.log ] + start_at: end +... +``` +Replace `/tmp/app.log` with the path to your log file. + +Note: change the `start_at` value to `beginning` if you want to read the log file from the beginning. It may be useful if you want to send old logs to SigNoz. The log records older than the standard log retention period (default 15 days) will be discarded. + +For more configurations that are available for filelog receiver please check [here](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/filelogreceiver). + +  +  + +### Step 2: Include filelog receiver in the Pipeline +We will modify our pipeline inside `config.yaml` to include the receiver we have created above. +```bash +service: + .... + logs: + receivers: [otlp, filelog/app] + processors: [batch] + exporters: [otlp] +``` \ No newline at end of file diff --git a/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/LinuxAMD64/appplicationLogs-linuxamd64-installOtelCollector.md b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/LinuxAMD64/appplicationLogs-linuxamd64-installOtelCollector.md new file mode 100644 index 0000000000..cc45b65165 --- /dev/null +++ b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/LinuxAMD64/appplicationLogs-linuxamd64-installOtelCollector.md @@ -0,0 +1,113 @@ +### Prerequisite +- A Linux based EC2 Instance + +  + +### Setup OpenTelemetry Binary as an agent + +### Step 1: Download otel-collector tar.gz +```bash +wget https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.79.0/otelcol-contrib_0.79.0_linux_amd64.tar.gz +``` + +### Step 2: Extract otel-collector tar.gz to the `otelcol-contrib` folder +```bash +mkdir otelcol-contrib && tar xvzf otelcol-contrib_0.79.0_linux_amd64.tar.gz -C otelcol-contrib +``` + +### Step 3: Create config.yaml in folder otelcol-contrib with the below content in it +```bash +receivers: + otlp: + protocols: + grpc: + endpoint: 0.0.0.0:4317 + http: + endpoint: 0.0.0.0:4318 + hostmetrics: + collection_interval: 60s + scrapers: + cpu: {} + disk: {} + load: {} + filesystem: {} + memory: {} + network: {} + paging: {} + process: + mute_process_name_error: true + mute_process_exe_error: true + mute_process_io_error: true + processes: {} + prometheus: + config: + global: + scrape_interval: 60s + scrape_configs: + - job_name: otel-collector-binary + static_configs: + - targets: + # - localhost:8888 +processors: + batch: + send_batch_size: 1000 + timeout: 10s + # Ref: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/processor/resourcedetectionprocessor/README.md + resourcedetection: + detectors: [env, system] # Before system detector, include ec2 for AWS, gcp for GCP and azure for Azure. + # Using OTEL_RESOURCE_ATTRIBUTES envvar, env detector adds custom labels. + timeout: 2s + system: + hostname_sources: [os] # alternatively, use [dns,os] for setting FQDN as host.name and os as fallback +extensions: + health_check: {} + zpages: {} +exporters: + otlp: + endpoint: "ingest.{{REGION}}.signoz.cloud:443" + tls: + insecure: false + headers: + "signoz-access-token": "{{SIGNOZ_INGESTION_KEY}}" + logging: + verbosity: normal +service: + telemetry: + metrics: + address: 0.0.0.0:8888 + extensions: [health_check, zpages] + pipelines: + metrics: + receivers: [otlp] + processors: [batch] + exporters: [otlp] + metrics/internal: + receivers: [prometheus, hostmetrics] + processors: [resourcedetection, batch] + exporters: [otlp] + traces: + receivers: [otlp] + processors: [batch] + exporters: [otlp] + logs: + receivers: [otlp] + processors: [batch] + exporters: [otlp] +``` +### Step 4: Run OTel Collector + Run this command inside the `otelcol-contrib` directory + +```bash +./otelcol-contrib --config ./config.yaml &> otelcol-output.log & echo "$!" > otel-pid +``` + +### (Optional Step): View last 50 lines of `otelcol` logs +```bash +tail -f -n 50 otelcol-output.log +``` + +### (Optional Step): Stop `otelcol` +```bash +kill "$(< otel-pid)" +``` + diff --git a/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/LinuxAMD64/appplicationLogs-linuxamd64-runOtelCollector.md b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/LinuxAMD64/appplicationLogs-linuxamd64-runOtelCollector.md new file mode 100644 index 0000000000..8f0ae7fdc1 --- /dev/null +++ b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/LinuxAMD64/appplicationLogs-linuxamd64-runOtelCollector.md @@ -0,0 +1,15 @@ +### Restart the Otel Collector + +Restart the otel collector so that new changes are saved and you should see the logs in the dashboard. + +Kill the process if it was already running using the below command +```bash +kill "$(< otel-pid)" +``` + +Restart the OTel collector when you’re in the `otel-contirb` folder +```bash +./otelcol-contrib --config ./config.yaml &> otelcol-output.log & echo "$!" > otel-pid +``` + +Now you should be able to see the Logs on your SigNoz Cloud UI diff --git a/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/LinuxARM64/appplicationLogs-linuxarm64-configureReceiver.md b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/LinuxARM64/appplicationLogs-linuxarm64-configureReceiver.md new file mode 100644 index 0000000000..435465fb71 --- /dev/null +++ b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/LinuxARM64/appplicationLogs-linuxarm64-configureReceiver.md @@ -0,0 +1,31 @@ +### Step 1: Add filelog receiver to `config.yaml` file of otel collector + +Add the filelog receiver in the receivers section of `config.yaml` file of the **`otecol-contrib`** directory that you created in the previous step + +```bash +receivers: + ... + filelog/app: + include: [ /tmp/app.log ] + start_at: end +... +``` +Replace `/tmp/app.log` with the path to your log file. + +Note: change the `start_at` value to `beginning` if you want to read the log file from the beginning. It may be useful if you want to send old logs to SigNoz. The log records older than the standard log retention period (default 15 days) will be discarded. + +For more configurations that are available for filelog receiver please check [here](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/filelogreceiver). + +  +  + +### Step 2: Include filelog receiver in the Pipeline +We will modify our pipeline inside `config.yaml` to include the receiver we have created above. +```bash +service: + .... + logs: + receivers: [otlp, filelog/app] + processors: [batch] + exporters: [otlp] +``` \ No newline at end of file diff --git a/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/LinuxARM64/appplicationLogs-linuxarm64-installOtelCollector.md b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/LinuxARM64/appplicationLogs-linuxarm64-installOtelCollector.md new file mode 100644 index 0000000000..1685719272 --- /dev/null +++ b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/LinuxARM64/appplicationLogs-linuxarm64-installOtelCollector.md @@ -0,0 +1,114 @@ +### Prerequisite +- A Linux based EC2 Instance + +  + +### Setup OpenTelemetry Binary as an agent + +### Step 1: Download otel-collector tar.gz +```bash +wget https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.79.0/otelcol-contrib_0.79.0_linux_arm64.tar.gz +``` + +### Step 2: Extract otel-collector tar.gz to the `otelcol-contrib` folder +```bash +mkdir otelcol-contrib && tar xvzf otelcol-contrib_0.79.0_linux_arm64.tar.gz -C otelcol-contrib +``` + +### Step 3: Create config.yaml in folder otelcol-contrib with the below content in it +```bash +receivers: + otlp: + protocols: + grpc: + endpoint: 0.0.0.0:4317 + http: + endpoint: 0.0.0.0:4318 + hostmetrics: + collection_interval: 60s + scrapers: + cpu: {} + disk: {} + load: {} + filesystem: {} + memory: {} + network: {} + paging: {} + process: + mute_process_name_error: true + mute_process_exe_error: true + mute_process_io_error: true + processes: {} + prometheus: + config: + global: + scrape_interval: 60s + scrape_configs: + - job_name: otel-collector-binary + static_configs: + - targets: + # - localhost:8888 +processors: + batch: + send_batch_size: 1000 + timeout: 10s + # Ref: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/processor/resourcedetectionprocessor/README.md + resourcedetection: + detectors: [env, system] # Before system detector, include ec2 for AWS, gcp for GCP and azure for Azure. + # Using OTEL_RESOURCE_ATTRIBUTES envvar, env detector adds custom labels. + timeout: 2s + system: + hostname_sources: [os] # alternatively, use [dns,os] for setting FQDN as host.name and os as fallback +extensions: + health_check: {} + zpages: {} +exporters: + otlp: + endpoint: "ingest.{{REGION}}.signoz.cloud:443" + tls: + insecure: false + headers: + "signoz-access-token": "{{SIGNOZ_INGESTION_KEY}}" + logging: + verbosity: normal +service: + telemetry: + metrics: + address: 0.0.0.0:8888 + extensions: [health_check, zpages] + pipelines: + metrics: + receivers: [otlp] + processors: [batch] + exporters: [otlp] + metrics/internal: + receivers: [prometheus, hostmetrics] + processors: [resourcedetection, batch] + exporters: [otlp] + traces: + receivers: [otlp] + processors: [batch] + exporters: [otlp] + logs: + receivers: [otlp] + processors: [batch] + exporters: [otlp] +``` + +### Step 4: Run OTel Collector + Run this command inside the `otelcol-contrib` directory + +```bash +./otelcol-contrib --config ./config.yaml &> otelcol-output.log & echo "$!" > otel-pid +``` + +### (Optional Step): View last 50 lines of `otelcol` logs +```bash +tail -f -n 50 otelcol-output.log +``` + +### (Optional Step): Stop `otelcol` +```bash +kill "$(< otel-pid)" +``` + diff --git a/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/LinuxARM64/appplicationLogs-linuxarm64-runOtelCollector.md b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/LinuxARM64/appplicationLogs-linuxarm64-runOtelCollector.md new file mode 100644 index 0000000000..8f0ae7fdc1 --- /dev/null +++ b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/LinuxARM64/appplicationLogs-linuxarm64-runOtelCollector.md @@ -0,0 +1,15 @@ +### Restart the Otel Collector + +Restart the otel collector so that new changes are saved and you should see the logs in the dashboard. + +Kill the process if it was already running using the below command +```bash +kill "$(< otel-pid)" +``` + +Restart the OTel collector when you’re in the `otel-contirb` folder +```bash +./otelcol-contrib --config ./config.yaml &> otelcol-output.log & echo "$!" > otel-pid +``` + +Now you should be able to see the Logs on your SigNoz Cloud UI diff --git a/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/MacOsAMD64/appplicationLogs-macosamd64-configureReceiver.md b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/MacOsAMD64/appplicationLogs-macosamd64-configureReceiver.md new file mode 100644 index 0000000000..435465fb71 --- /dev/null +++ b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/MacOsAMD64/appplicationLogs-macosamd64-configureReceiver.md @@ -0,0 +1,31 @@ +### Step 1: Add filelog receiver to `config.yaml` file of otel collector + +Add the filelog receiver in the receivers section of `config.yaml` file of the **`otecol-contrib`** directory that you created in the previous step + +```bash +receivers: + ... + filelog/app: + include: [ /tmp/app.log ] + start_at: end +... +``` +Replace `/tmp/app.log` with the path to your log file. + +Note: change the `start_at` value to `beginning` if you want to read the log file from the beginning. It may be useful if you want to send old logs to SigNoz. The log records older than the standard log retention period (default 15 days) will be discarded. + +For more configurations that are available for filelog receiver please check [here](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/filelogreceiver). + +  +  + +### Step 2: Include filelog receiver in the Pipeline +We will modify our pipeline inside `config.yaml` to include the receiver we have created above. +```bash +service: + .... + logs: + receivers: [otlp, filelog/app] + processors: [batch] + exporters: [otlp] +``` \ No newline at end of file diff --git a/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/MacOsAMD64/appplicationLogs-macosamd64-installOtelCollector.md b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/MacOsAMD64/appplicationLogs-macosamd64-installOtelCollector.md new file mode 100644 index 0000000000..4d59ad1b2c --- /dev/null +++ b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/MacOsAMD64/appplicationLogs-macosamd64-installOtelCollector.md @@ -0,0 +1,113 @@ +### Prerequisite +- A Linux based EC2 Instance + +  + +### Setup OpenTelemetry Binary as an agent + +### Step 1: Download otel-collector tar.gz +```bash +wget https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.79.0/otelcol-contrib_0.79.0_darwin_amd64.tar.gz +``` + +### Step 2: Extract otel-collector tar.gz to the `otelcol-contrib` folder +```bash +mkdir otelcol-contrib && tar xvzf otelcol-contrib_0.79.0_darwin_amd64.tar.gz -C otelcol-contrib +``` + +### Step 3: Create config.yaml in folder otelcol-contrib with the below content in it +```bash +receivers: + otlp: + protocols: + grpc: + endpoint: 0.0.0.0:4317 + http: + endpoint: 0.0.0.0:4318 + hostmetrics: + collection_interval: 60s + scrapers: + cpu: {} + disk: {} + load: {} + filesystem: {} + memory: {} + network: {} + paging: {} + process: + mute_process_name_error: true + mute_process_exe_error: true + mute_process_io_error: true + processes: {} + prometheus: + config: + global: + scrape_interval: 60s + scrape_configs: + - job_name: otel-collector-binary + static_configs: + - targets: + # - localhost:8888 +processors: + batch: + send_batch_size: 1000 + timeout: 10s + # Ref: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/processor/resourcedetectionprocessor/README.md + resourcedetection: + detectors: [env, system] # Before system detector, include ec2 for AWS, gcp for GCP and azure for Azure. + # Using OTEL_RESOURCE_ATTRIBUTES envvar, env detector adds custom labels. + timeout: 2s + system: + hostname_sources: [os] # alternatively, use [dns,os] for setting FQDN as host.name and os as fallback +extensions: + health_check: {} + zpages: {} +exporters: + otlp: + endpoint: "ingest.{{REGION}}.signoz.cloud:443" + tls: + insecure: false + headers: + "signoz-access-token": "{{SIGNOZ_INGESTION_KEY}}" + logging: + verbosity: normal +service: + telemetry: + metrics: + address: 0.0.0.0:8888 + extensions: [health_check, zpages] + pipelines: + metrics: + receivers: [otlp] + processors: [batch] + exporters: [otlp] + metrics/internal: + receivers: [prometheus, hostmetrics] + processors: [resourcedetection, batch] + exporters: [otlp] + traces: + receivers: [otlp] + processors: [batch] + exporters: [otlp] + logs: + receivers: [otlp] + processors: [batch] + exporters: [otlp] +``` +### Step 4: Run OTel Collector + Run this command inside the `otelcol-contrib` directory + +```bash +./otelcol-contrib --config ./config.yaml &> otelcol-output.log & echo "$!" > otel-pid +``` + +### (Optional Step): View last 50 lines of `otelcol` logs +```bash +tail -f -n 50 otelcol-output.log +``` + +### (Optional Step): Stop `otelcol` +```bash +kill "$(< otel-pid)" +``` + diff --git a/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/MacOsAMD64/appplicationLogs-macosamd64-runOtelCollector.md b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/MacOsAMD64/appplicationLogs-macosamd64-runOtelCollector.md new file mode 100644 index 0000000000..8f0ae7fdc1 --- /dev/null +++ b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/MacOsAMD64/appplicationLogs-macosamd64-runOtelCollector.md @@ -0,0 +1,15 @@ +### Restart the Otel Collector + +Restart the otel collector so that new changes are saved and you should see the logs in the dashboard. + +Kill the process if it was already running using the below command +```bash +kill "$(< otel-pid)" +``` + +Restart the OTel collector when you’re in the `otel-contirb` folder +```bash +./otelcol-contrib --config ./config.yaml &> otelcol-output.log & echo "$!" > otel-pid +``` + +Now you should be able to see the Logs on your SigNoz Cloud UI diff --git a/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/MacOsARM64/appplicationLogs-macosarm64-configureReceiver.md b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/MacOsARM64/appplicationLogs-macosarm64-configureReceiver.md new file mode 100644 index 0000000000..435465fb71 --- /dev/null +++ b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/MacOsARM64/appplicationLogs-macosarm64-configureReceiver.md @@ -0,0 +1,31 @@ +### Step 1: Add filelog receiver to `config.yaml` file of otel collector + +Add the filelog receiver in the receivers section of `config.yaml` file of the **`otecol-contrib`** directory that you created in the previous step + +```bash +receivers: + ... + filelog/app: + include: [ /tmp/app.log ] + start_at: end +... +``` +Replace `/tmp/app.log` with the path to your log file. + +Note: change the `start_at` value to `beginning` if you want to read the log file from the beginning. It may be useful if you want to send old logs to SigNoz. The log records older than the standard log retention period (default 15 days) will be discarded. + +For more configurations that are available for filelog receiver please check [here](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/filelogreceiver). + +  +  + +### Step 2: Include filelog receiver in the Pipeline +We will modify our pipeline inside `config.yaml` to include the receiver we have created above. +```bash +service: + .... + logs: + receivers: [otlp, filelog/app] + processors: [batch] + exporters: [otlp] +``` \ No newline at end of file diff --git a/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/MacOsARM64/appplicationLogs-macosarm64-installOtelCollector.md b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/MacOsARM64/appplicationLogs-macosarm64-installOtelCollector.md new file mode 100644 index 0000000000..b4b36cb3c6 --- /dev/null +++ b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/MacOsARM64/appplicationLogs-macosarm64-installOtelCollector.md @@ -0,0 +1,113 @@ +### Prerequisite +- A Linux based EC2 Instance + +  + +### Setup OpenTelemetry Binary as an agent + +### Step 1: Download otel-collector tar.gz +```bash +wget https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.79.0/otelcol-contrib_0.79.0_darwin_arm64.tar.gz +``` + +### Step 2: Extract otel-collector tar.gz to the `otelcol-contrib` folder +```bash +mkdir otelcol-contrib && tar xvzf otelcol-contrib_0.79.0_darwin_arm64.tar.gz -C otelcol-contrib +``` + +### Step 3: Create config.yaml in folder otelcol-contrib with the below content in it +```bash +receivers: + otlp: + protocols: + grpc: + endpoint: 0.0.0.0:4317 + http: + endpoint: 0.0.0.0:4318 + hostmetrics: + collection_interval: 60s + scrapers: + cpu: {} + disk: {} + load: {} + filesystem: {} + memory: {} + network: {} + paging: {} + process: + mute_process_name_error: true + mute_process_exe_error: true + mute_process_io_error: true + processes: {} + prometheus: + config: + global: + scrape_interval: 60s + scrape_configs: + - job_name: otel-collector-binary + static_configs: + - targets: + # - localhost:8888 +processors: + batch: + send_batch_size: 1000 + timeout: 10s + # Ref: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/processor/resourcedetectionprocessor/README.md + resourcedetection: + detectors: [env, system] # Before system detector, include ec2 for AWS, gcp for GCP and azure for Azure. + # Using OTEL_RESOURCE_ATTRIBUTES envvar, env detector adds custom labels. + timeout: 2s + system: + hostname_sources: [os] # alternatively, use [dns,os] for setting FQDN as host.name and os as fallback +extensions: + health_check: {} + zpages: {} +exporters: + otlp: + endpoint: "ingest.{{REGION}}.signoz.cloud:443" + tls: + insecure: false + headers: + "signoz-access-token": "{{SIGNOZ_INGESTION_KEY}}" + logging: + verbosity: normal +service: + telemetry: + metrics: + address: 0.0.0.0:8888 + extensions: [health_check, zpages] + pipelines: + metrics: + receivers: [otlp] + processors: [batch] + exporters: [otlp] + metrics/internal: + receivers: [prometheus, hostmetrics] + processors: [resourcedetection, batch] + exporters: [otlp] + traces: + receivers: [otlp] + processors: [batch] + exporters: [otlp] + logs: + receivers: [otlp] + processors: [batch] + exporters: [otlp] +``` +### Step 4: Run OTel Collector + Run this command inside the `otelcol-contrib` directory + +```bash +./otelcol-contrib --config ./config.yaml &> otelcol-output.log & echo "$!" > otel-pid +``` + +### (Optional Step): View last 50 lines of `otelcol` logs +```bash +tail -f -n 50 otelcol-output.log +``` + +### (Optional Step): Stop `otelcol` +```bash +kill "$(< otel-pid)" +``` + diff --git a/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/MacOsARM64/appplicationLogs-macosarm64-runOtelCollector.md b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/MacOsARM64/appplicationLogs-macosarm64-runOtelCollector.md new file mode 100644 index 0000000000..8f0ae7fdc1 --- /dev/null +++ b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/MacOsARM64/appplicationLogs-macosarm64-runOtelCollector.md @@ -0,0 +1,15 @@ +### Restart the Otel Collector + +Restart the otel collector so that new changes are saved and you should see the logs in the dashboard. + +Kill the process if it was already running using the below command +```bash +kill "$(< otel-pid)" +``` + +Restart the OTel collector when you’re in the `otel-contirb` folder +```bash +./otelcol-contrib --config ./config.yaml &> otelcol-output.log & echo "$!" > otel-pid +``` + +Now you should be able to see the Logs on your SigNoz Cloud UI diff --git a/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2InfrastructureMetrics/md-docs/LinuxAMD64/hostmetrics-configureHostmetricsJson.md b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2InfrastructureMetrics/md-docs/LinuxAMD64/hostmetrics-configureHostmetricsJson.md new file mode 100644 index 0000000000..5be4c4a528 --- /dev/null +++ b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2InfrastructureMetrics/md-docs/LinuxAMD64/hostmetrics-configureHostmetricsJson.md @@ -0,0 +1,15 @@ +### Step 1: Download/Copy this hostmetrics JSON file + +Download/Copy the `hostmetrics-with-variable.json` from [here](https://github.com/SigNoz/dashboards/blob/main/hostmetrics/hostmetrics-with-variable.json) + +  +  + +### Step 2: Import hostmetrics JSON file to SigNoz Cloud + +Once you click on the **`Done`** button at the bottom right corner, you'll be taken to the SigNoz UI. + +In SigNoZ UI, go to dashboards section and click New Dashboard button and select the import JSON option and upload/paste the `hostmetrics-with-variables.json` file data that you downloaded/copied in last step. + + +To know more detailed instructions, checkout the link [here](https://signoz.io/docs/userguide/hostmetrics/) \ No newline at end of file diff --git a/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2InfrastructureMetrics/md-docs/LinuxAMD64/hostmetrics-setupOtelCollector.md b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2InfrastructureMetrics/md-docs/LinuxAMD64/hostmetrics-setupOtelCollector.md new file mode 100644 index 0000000000..eaba01bfd8 --- /dev/null +++ b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2InfrastructureMetrics/md-docs/LinuxAMD64/hostmetrics-setupOtelCollector.md @@ -0,0 +1,113 @@ +### Prerequisite +- A running EC2 instance + +  + +### Setup OpenTelemetry Binary as an agent + +### Step 1: Download otel-collector tar.gz +```bash +wget https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.79.0/otelcol-contrib_0.79.0_linux_amd64.tar.gz +``` + +### Step 2: Extract otel-collector tar.gz to the `otelcol-contrib` folder +```bash +mkdir otelcol-contrib && tar xvzf otelcol-contrib_0.79.0_linux_amd64.tar.gz -C otelcol-contrib +``` + +### Step 3: Create config.yaml in folder otelcol-contrib with the below content in it +```bash +receivers: + otlp: + protocols: + grpc: + endpoint: 0.0.0.0:4317 + http: + endpoint: 0.0.0.0:4318 + hostmetrics: + collection_interval: 60s + scrapers: + cpu: {} + disk: {} + load: {} + filesystem: {} + memory: {} + network: {} + paging: {} + process: + mute_process_name_error: true + mute_process_exe_error: true + mute_process_io_error: true + processes: {} + prometheus: + config: + global: + scrape_interval: 60s + scrape_configs: + - job_name: otel-collector-binary + static_configs: + - targets: + # - localhost:8888 +processors: + batch: + send_batch_size: 1000 + timeout: 10s + # Ref: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/processor/resourcedetectionprocessor/README.md + resourcedetection: + detectors: [env, system] # Before system detector, include ec2 for AWS, gcp for GCP and azure for Azure. + # Using OTEL_RESOURCE_ATTRIBUTES envvar, env detector adds custom labels. + timeout: 2s + system: + hostname_sources: [os] # alternatively, use [dns,os] for setting FQDN as host.name and os as fallback +extensions: + health_check: {} + zpages: {} +exporters: + otlp: + endpoint: "ingest.{{REGION}}.signoz.cloud:443" + tls: + insecure: false + headers: + "signoz-access-token": "{{SIGNOZ_INGESTION_KEY}}" + logging: + verbosity: normal +service: + telemetry: + metrics: + address: 0.0.0.0:8888 + extensions: [health_check, zpages] + pipelines: + metrics: + receivers: [otlp] + processors: [batch] + exporters: [otlp] + metrics/internal: + receivers: [prometheus, hostmetrics] + processors: [resourcedetection, batch] + exporters: [otlp] + traces: + receivers: [otlp] + processors: [batch] + exporters: [otlp] + logs: + receivers: [otlp] + processors: [batch] + exporters: [otlp] +``` +### Step 4: Run OTel Collector + Run this command inside the `otelcol-contrib` directory + +```bash +./otelcol-contrib --config ./config.yaml &> otelcol-output.log & echo "$!" > otel-pid +``` + +### (Optional Step): View last 50 lines of `otelcol` logs +```bash +tail -f -n 50 otelcol-output.log +``` + +### (Optional Step): Stop `otelcol` +```bash +kill "$(< otel-pid)" +``` + diff --git a/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2InfrastructureMetrics/md-docs/LinuxARM64/hostmetrics-configureHostmetricsJson.md b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2InfrastructureMetrics/md-docs/LinuxARM64/hostmetrics-configureHostmetricsJson.md new file mode 100644 index 0000000000..5be4c4a528 --- /dev/null +++ b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2InfrastructureMetrics/md-docs/LinuxARM64/hostmetrics-configureHostmetricsJson.md @@ -0,0 +1,15 @@ +### Step 1: Download/Copy this hostmetrics JSON file + +Download/Copy the `hostmetrics-with-variable.json` from [here](https://github.com/SigNoz/dashboards/blob/main/hostmetrics/hostmetrics-with-variable.json) + +  +  + +### Step 2: Import hostmetrics JSON file to SigNoz Cloud + +Once you click on the **`Done`** button at the bottom right corner, you'll be taken to the SigNoz UI. + +In SigNoZ UI, go to dashboards section and click New Dashboard button and select the import JSON option and upload/paste the `hostmetrics-with-variables.json` file data that you downloaded/copied in last step. + + +To know more detailed instructions, checkout the link [here](https://signoz.io/docs/userguide/hostmetrics/) \ No newline at end of file diff --git a/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2InfrastructureMetrics/md-docs/LinuxARM64/hostmetrics-setupOtelCollector.md b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2InfrastructureMetrics/md-docs/LinuxARM64/hostmetrics-setupOtelCollector.md new file mode 100644 index 0000000000..9d23e61295 --- /dev/null +++ b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2InfrastructureMetrics/md-docs/LinuxARM64/hostmetrics-setupOtelCollector.md @@ -0,0 +1,114 @@ +### Prerequisite +- A running EC2 instance + +  + +### Setup OpenTelemetry Binary as an agent + +### Step 1: Download otel-collector tar.gz +```bash +wget https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.79.0/otelcol-contrib_0.79.0_linux_arm64.tar.gz +``` + +### Step 2: Extract otel-collector tar.gz to the `otelcol-contrib` folder +```bash +mkdir otelcol-contrib && tar xvzf otelcol-contrib_0.79.0_linux_arm64.tar.gz -C otelcol-contrib +``` + +### Step 3: Create config.yaml in folder otelcol-contrib with the below content in it +```bash +receivers: + otlp: + protocols: + grpc: + endpoint: 0.0.0.0:4317 + http: + endpoint: 0.0.0.0:4318 + hostmetrics: + collection_interval: 60s + scrapers: + cpu: {} + disk: {} + load: {} + filesystem: {} + memory: {} + network: {} + paging: {} + process: + mute_process_name_error: true + mute_process_exe_error: true + mute_process_io_error: true + processes: {} + prometheus: + config: + global: + scrape_interval: 60s + scrape_configs: + - job_name: otel-collector-binary + static_configs: + - targets: + # - localhost:8888 +processors: + batch: + send_batch_size: 1000 + timeout: 10s + # Ref: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/processor/resourcedetectionprocessor/README.md + resourcedetection: + detectors: [env, system] # Before system detector, include ec2 for AWS, gcp for GCP and azure for Azure. + # Using OTEL_RESOURCE_ATTRIBUTES envvar, env detector adds custom labels. + timeout: 2s + system: + hostname_sources: [os] # alternatively, use [dns,os] for setting FQDN as host.name and os as fallback +extensions: + health_check: {} + zpages: {} +exporters: + otlp: + endpoint: "ingest.{{REGION}}.signoz.cloud:443" + tls: + insecure: false + headers: + "signoz-access-token": "{{SIGNOZ_INGESTION_KEY}}" + logging: + verbosity: normal +service: + telemetry: + metrics: + address: 0.0.0.0:8888 + extensions: [health_check, zpages] + pipelines: + metrics: + receivers: [otlp] + processors: [batch] + exporters: [otlp] + metrics/internal: + receivers: [prometheus, hostmetrics] + processors: [resourcedetection, batch] + exporters: [otlp] + traces: + receivers: [otlp] + processors: [batch] + exporters: [otlp] + logs: + receivers: [otlp] + processors: [batch] + exporters: [otlp] +``` + +### Step 4: Run OTel Collector + Run this command inside the `otelcol-contrib` directory + +```bash +./otelcol-contrib --config ./config.yaml &> otelcol-output.log & echo "$!" > otel-pid +``` + +### (Optional Step): View last 50 lines of `otelcol` logs +```bash +tail -f -n 50 otelcol-output.log +``` + +### (Optional Step): Stop `otelcol` +```bash +kill "$(< otel-pid)" +``` + diff --git a/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2InfrastructureMetrics/md-docs/MacOsAMD64/hostmetrics-configureHostmetricsJson.md b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2InfrastructureMetrics/md-docs/MacOsAMD64/hostmetrics-configureHostmetricsJson.md new file mode 100644 index 0000000000..5be4c4a528 --- /dev/null +++ b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2InfrastructureMetrics/md-docs/MacOsAMD64/hostmetrics-configureHostmetricsJson.md @@ -0,0 +1,15 @@ +### Step 1: Download/Copy this hostmetrics JSON file + +Download/Copy the `hostmetrics-with-variable.json` from [here](https://github.com/SigNoz/dashboards/blob/main/hostmetrics/hostmetrics-with-variable.json) + +  +  + +### Step 2: Import hostmetrics JSON file to SigNoz Cloud + +Once you click on the **`Done`** button at the bottom right corner, you'll be taken to the SigNoz UI. + +In SigNoZ UI, go to dashboards section and click New Dashboard button and select the import JSON option and upload/paste the `hostmetrics-with-variables.json` file data that you downloaded/copied in last step. + + +To know more detailed instructions, checkout the link [here](https://signoz.io/docs/userguide/hostmetrics/) \ No newline at end of file diff --git a/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2InfrastructureMetrics/md-docs/MacOsAMD64/hostmetrics-setupOtelCollector.md b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2InfrastructureMetrics/md-docs/MacOsAMD64/hostmetrics-setupOtelCollector.md new file mode 100644 index 0000000000..26e95c43a7 --- /dev/null +++ b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2InfrastructureMetrics/md-docs/MacOsAMD64/hostmetrics-setupOtelCollector.md @@ -0,0 +1,113 @@ +### Prerequisite +- A running EC2 instance + +  + +### Setup OpenTelemetry Binary as an agent + +### Step 1: Download otel-collector tar.gz +```bash +wget https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.79.0/otelcol-contrib_0.79.0_darwin_amd64.tar.gz +``` + +### Step 2: Extract otel-collector tar.gz to the `otelcol-contrib` folder +```bash +mkdir otelcol-contrib && tar xvzf otelcol-contrib_0.79.0_darwin_amd64.tar.gz -C otelcol-contrib +``` + +### Step 3: Create config.yaml in folder otelcol-contrib with the below content in it +```bash +receivers: + otlp: + protocols: + grpc: + endpoint: 0.0.0.0:4317 + http: + endpoint: 0.0.0.0:4318 + hostmetrics: + collection_interval: 60s + scrapers: + cpu: {} + disk: {} + load: {} + filesystem: {} + memory: {} + network: {} + paging: {} + process: + mute_process_name_error: true + mute_process_exe_error: true + mute_process_io_error: true + processes: {} + prometheus: + config: + global: + scrape_interval: 60s + scrape_configs: + - job_name: otel-collector-binary + static_configs: + - targets: + # - localhost:8888 +processors: + batch: + send_batch_size: 1000 + timeout: 10s + # Ref: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/processor/resourcedetectionprocessor/README.md + resourcedetection: + detectors: [env, system] # Before system detector, include ec2 for AWS, gcp for GCP and azure for Azure. + # Using OTEL_RESOURCE_ATTRIBUTES envvar, env detector adds custom labels. + timeout: 2s + system: + hostname_sources: [os] # alternatively, use [dns,os] for setting FQDN as host.name and os as fallback +extensions: + health_check: {} + zpages: {} +exporters: + otlp: + endpoint: "ingest.{{REGION}}.signoz.cloud:443" + tls: + insecure: false + headers: + "signoz-access-token": "{{SIGNOZ_INGESTION_KEY}}" + logging: + verbosity: normal +service: + telemetry: + metrics: + address: 0.0.0.0:8888 + extensions: [health_check, zpages] + pipelines: + metrics: + receivers: [otlp] + processors: [batch] + exporters: [otlp] + metrics/internal: + receivers: [prometheus, hostmetrics] + processors: [resourcedetection, batch] + exporters: [otlp] + traces: + receivers: [otlp] + processors: [batch] + exporters: [otlp] + logs: + receivers: [otlp] + processors: [batch] + exporters: [otlp] +``` +### Step 4: Run OTel Collector + Run this command inside the `otelcol-contrib` directory + +```bash +./otelcol-contrib --config ./config.yaml &> otelcol-output.log & echo "$!" > otel-pid +``` + +### (Optional Step): View last 50 lines of `otelcol` logs +```bash +tail -f -n 50 otelcol-output.log +``` + +### (Optional Step): Stop `otelcol` +```bash +kill "$(< otel-pid)" +``` + diff --git a/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2InfrastructureMetrics/md-docs/MacOsARM64/hostmetrics-configureHostmetricsJson.md b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2InfrastructureMetrics/md-docs/MacOsARM64/hostmetrics-configureHostmetricsJson.md new file mode 100644 index 0000000000..5be4c4a528 --- /dev/null +++ b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2InfrastructureMetrics/md-docs/MacOsARM64/hostmetrics-configureHostmetricsJson.md @@ -0,0 +1,15 @@ +### Step 1: Download/Copy this hostmetrics JSON file + +Download/Copy the `hostmetrics-with-variable.json` from [here](https://github.com/SigNoz/dashboards/blob/main/hostmetrics/hostmetrics-with-variable.json) + +  +  + +### Step 2: Import hostmetrics JSON file to SigNoz Cloud + +Once you click on the **`Done`** button at the bottom right corner, you'll be taken to the SigNoz UI. + +In SigNoZ UI, go to dashboards section and click New Dashboard button and select the import JSON option and upload/paste the `hostmetrics-with-variables.json` file data that you downloaded/copied in last step. + + +To know more detailed instructions, checkout the link [here](https://signoz.io/docs/userguide/hostmetrics/) \ No newline at end of file diff --git a/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2InfrastructureMetrics/md-docs/MacOsARM64/hostmetrics-setupOtelCollector.md b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2InfrastructureMetrics/md-docs/MacOsARM64/hostmetrics-setupOtelCollector.md new file mode 100644 index 0000000000..e35173ba08 --- /dev/null +++ b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EC2InfrastructureMetrics/md-docs/MacOsARM64/hostmetrics-setupOtelCollector.md @@ -0,0 +1,112 @@ +### Prerequisite +- A running EC2 instance + +  + +### Setup OpenTelemetry Binary as an agent + +### Step 1: Download otel-collector tar.gz +```bash +wget https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.79.0/otelcol-contrib_0.79.0_darwin_arm64.tar.gz +``` +### Step 2: Extract otel-collector tar.gz to the `otelcol-contrib` folder +```bash +mkdir otelcol-contrib && tar xvzf otelcol-contrib_0.79.0_darwin_arm64.tar.gz -C otelcol-contrib +``` + +### Step 3: Create config.yaml in folder otelcol-contrib with the below content in it +```bash +receivers: + otlp: + protocols: + grpc: + endpoint: 0.0.0.0:4317 + http: + endpoint: 0.0.0.0:4318 + hostmetrics: + collection_interval: 60s + scrapers: + cpu: {} + disk: {} + load: {} + filesystem: {} + memory: {} + network: {} + paging: {} + process: + mute_process_name_error: true + mute_process_exe_error: true + mute_process_io_error: true + processes: {} + prometheus: + config: + global: + scrape_interval: 60s + scrape_configs: + - job_name: otel-collector-binary + static_configs: + - targets: + # - localhost:8888 +processors: + batch: + send_batch_size: 1000 + timeout: 10s + # Ref: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/processor/resourcedetectionprocessor/README.md + resourcedetection: + detectors: [env, system] # Before system detector, include ec2 for AWS, gcp for GCP and azure for Azure. + # Using OTEL_RESOURCE_ATTRIBUTES envvar, env detector adds custom labels. + timeout: 2s + system: + hostname_sources: [os] # alternatively, use [dns,os] for setting FQDN as host.name and os as fallback +extensions: + health_check: {} + zpages: {} +exporters: + otlp: + endpoint: "ingest.{{REGION}}.signoz.cloud:443" + tls: + insecure: false + headers: + "signoz-access-token": "{{SIGNOZ_INGESTION_KEY}}" + logging: + verbosity: normal +service: + telemetry: + metrics: + address: 0.0.0.0:8888 + extensions: [health_check, zpages] + pipelines: + metrics: + receivers: [otlp] + processors: [batch] + exporters: [otlp] + metrics/internal: + receivers: [prometheus, hostmetrics] + processors: [resourcedetection, batch] + exporters: [otlp] + traces: + receivers: [otlp] + processors: [batch] + exporters: [otlp] + logs: + receivers: [otlp] + processors: [batch] + exporters: [otlp] +``` +### Step 4: Run OTel Collector + Run this command inside the `otelcol-contrib` directory + +```bash +./otelcol-contrib --config ./config.yaml &> otelcol-output.log & echo "$!" > otel-pid +``` + +### (Optional Step): View last 50 lines of `otelcol` logs +```bash +tail -f -n 50 otelcol-output.log +``` + +### (Optional Step): Stop `otelcol` +```bash +kill "$(< otel-pid)" +``` + diff --git a/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/ECSEc2/md-docs/ecsEc2-createDaemonService.md b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/ECSEc2/md-docs/ecsEc2-createDaemonService.md new file mode 100644 index 0000000000..83bb67039b --- /dev/null +++ b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/ECSEc2/md-docs/ecsEc2-createDaemonService.md @@ -0,0 +1,68 @@ +## Create Daemon Service + +Using the template we downloaded and the SigNoz OpenTelemetry Collector configuration we created, we will create the Daemon Service. This can be done following these steps: + +### Step 1: Set the environment variable + +Set the environment variable by running the below command uisng your AWS CLI: + +```bash +export CLUSTER_NAME= +export REGION= +export COMMAND=--config=env:SIGNOZ_CONFIG_CONTENT +export SIGNOZ_CONFIG_PATH=/ecs/signoz/otelcol-daemon.yaml +``` + +`` - Name of your ECS cluster. For example, **my-test-cluster** + +`` - Region in which your ECS cluster is running. For example, **us-east-1** + +  + +### Step 2: Create stack for Daemon Service + +With the environment variables set, you can proceed to create the Daemon service using `cloudformation create-stack` by running the below command using your AWS CLI: + +```bash +aws cloudformation create-stack --stack-name AOCECS-daemon-${CLUSTER_NAME}-${REGION} \ + --template-body file://daemon-template.yaml \ + --parameters ParameterKey=ClusterName,ParameterValue=${CLUSTER_NAME} \ + ParameterKey=CreateIAMRoles,ParameterValue=True \ + ParameterKey=command,ParameterValue=${COMMAND} \ + ParameterKey=SigNozConfigPath,ParameterValue=${SIGNOZ_CONFIG_PATH} \ + --capabilities CAPABILITY_NAMED_IAM \ + --region ${REGION} +``` + +  + +### Step 3: Verify Daemon Service + +To verify that the daemon service is running, you can run the following command, which should output the task ARN of the Daemon service as the output. + +```bash +aws ecs list-tasks --cluster ${CLUSTER_NAME} --region ${REGION} + +``` +  + +### Step 4: Verify Data in SigNoz + +To verify that the data is being sent to SigNoz Cloud, you can go to the dashboard section of SigNoz and import one of the following dashboards below: + +- [instancemetrics.json](https://raw.githubusercontent.com/SigNoz/dashboards/chore/ecs-dashboards/ecs-infra-metrics/instance-metrics.json) +- [hostmetrics-with-variable.json](https://raw.githubusercontent.com/SigNoz/dashboards/main/hostmetrics/hostmetrics-with-variable.json) + +  + +### Optional Step: Clean Up + +In a cloud environment where resources are billed based on usage, cleaning up resources is crucial. This step involves removing the daemon service and any associated resources that were created during the setup process to collect and forward metrics and logs from your ECS infrastructure to SigNoz. To clean up the daemon service, you can run the following command: + +```bash +aws cloudformation delete-stack --stack-name AOCECS-daemon-${CLUSTER_NAME}-${REGION} --region ${REGION} +``` + +  + +Once you follow these steps, you should be able to see your logs and metrics data coming in SigNoz Cloud. To see data for your traces, click on Continue to next step below. \ No newline at end of file diff --git a/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/ECSEc2/md-docs/ecsEc2-createOtelConfig.md b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/ECSEc2/md-docs/ecsEc2-createOtelConfig.md new file mode 100644 index 0000000000..1171bc6ba7 --- /dev/null +++ b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/ECSEc2/md-docs/ecsEc2-createOtelConfig.md @@ -0,0 +1,28 @@ +## Create SigNoz OTel Collector Configuration file + +To setup the SigNoz OTel Collector config, follow these two steps: + +### Step 1: +Navigate to the AWS Parameter store and create a new parameter named **/ecs/signoz/otelcol-daemon.yaml** + +### Step 2: +Download the otelcol-daemon YAML configuration file: +```bash +wget https://github.com/SigNoz/benchmark/raw/main/ecs/otelcol-daemon.yaml +``` +  + +Update `{region}` and `SIGNOZ_INGESTION_KEY` values in your YAML configuration file with your SigNoz cloud values mentioned below: + +{region} : `{{REGION}}` + +SIGNOZ_INGESTION_KEY : `{{SIGNOZ_INGESTION_KEY}}` + +  + +Once you update these values, copy the updated content of the `otelcol-daemon.yaml` file and paste it in the value field of the **/ecs/signoz/otelcol-daemon.yaml** parameter that you created in Step 1. + +  + +**NOTE:** +- After successful set up, feel free to remove `logging` exporter if it gets too noisy. To do so, simply remove the logging exporter from the **exporters** list in the following pipelines: `traces`, `metrics`, and `logs` from the `otelcol-daemon.yaml` file. \ No newline at end of file diff --git a/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/ECSEc2/md-docs/ecsEc2-sendData.md b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/ECSEc2/md-docs/ecsEc2-sendData.md new file mode 100644 index 0000000000..c532102a2d --- /dev/null +++ b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/ECSEc2/md-docs/ecsEc2-sendData.md @@ -0,0 +1,90 @@ +**NOTE** : If you don't want to send traces data of your application, you can skip this step. + +  + +## Send Traces Data + +To send traces data from applications deployed in ECS to SigNoz Cloud using Daemon Service we created in the previous section, follow these steps: + +### Step 1: Instrument your application +To add OpenTelemetry instrumentation to your application, check out the Application Monitoring section in onboarding you can follow the docs [here](https://signoz.io/docs/instrumentation/). + +  + +### Step 2: Add Entrypoint to your Application Container + +Add an entrypoint to the application container to set the `OTEL_EXPORTER_OTLP_ENDPOINT` environment variable to the endpoint of the daemon service. + +Obtain the endpoint or IP address of the instance on which the task is running. This can be done by querying the metadata service of the instance. For **EC2**, the metadata service is available at **169.254.169.254**. + +The `entryPoint` will look like: + +```yaml +{ + ..., + "entryPoint": [ + "sh", + "-c", + "export OTEL_EXPORTER_OTLP_ENDPOINT=\"http://$(curl http://169.254.169.254/latest/meta-data/local-ipv4):4317\"; " + ], + "command": [], + ... +} +``` + +Replace `` with the commands to start your application. + +  + + +### Step 3: Add Service Name of your Application + +To add the service name of your application, you need to set the `OTEL_RESOURCE_ATTRIBUTES` environment variable of the application container to `service.name=`. + +In your task definition, add the following lines: + +```bash + +... + ContainerDefinitions: + - Name: + ... + Environment: + - Name: OTEL_RESOURCE_ATTRIBUTES + Value: service.name= + ... +... +``` + +If you are using JSON for task definition, then add the following lines: + +```bash +... + "containerDefinitions": [ + { + "name": "", + ... + "environment": [ + { + "name": "OTEL_RESOURCE_ATTRIBUTES", + "value": "service.name=" + } + ], + ... + } + ], +... + +``` + +  + +### Step 4: Rebuild and Deploy Application Container + +Once you follow the above steps, you need to rebuild the application container and deploy it to ECS cluster. + +  + +### Step 5: Verify Data in SigNoz + +Generate some traffic to your application and go to your SigNoz cloud **Services** page to see your application name in the service list. diff --git a/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/ECSEc2/md-docs/ecsEc2-setupDeamonService.md b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/ECSEc2/md-docs/ecsEc2-setupDeamonService.md new file mode 100644 index 0000000000..b96761cf86 --- /dev/null +++ b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/ECSEc2/md-docs/ecsEc2-setupDeamonService.md @@ -0,0 +1,21 @@ + +These steps will help you to collect **metrics, logs and traces** from your ECS infrastructure. + +## Setup Daemon Service + +  + +### Daemon Service Template + +This step guides in downloading a template which will be used to create a new service within your Amazon ECS (Elastic Container Service) cluster. The purpose of this service is to deploy a container that functions as a daemon. This service will run a container that will send data such as ECS infrastructure metrics and logs from docker containers and send it to SigNoz. + +We will use CloudFormation template which includes parameters and configurations that define how the daemon service should be set up. For example, it specifies the container image to use for the daemon, the necessary environment variables, and network settings. + +  + +Download the `daemon-template.yaml` using the command below: + +```bash +wget https://github.com/SigNoz/benchmark/raw/main/ecs/ec2/daemon-template.yaml +``` + diff --git a/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/ECSExternal/md-docs/ecsExternal-createDaemonService.md b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/ECSExternal/md-docs/ecsExternal-createDaemonService.md new file mode 100644 index 0000000000..83bb67039b --- /dev/null +++ b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/ECSExternal/md-docs/ecsExternal-createDaemonService.md @@ -0,0 +1,68 @@ +## Create Daemon Service + +Using the template we downloaded and the SigNoz OpenTelemetry Collector configuration we created, we will create the Daemon Service. This can be done following these steps: + +### Step 1: Set the environment variable + +Set the environment variable by running the below command uisng your AWS CLI: + +```bash +export CLUSTER_NAME= +export REGION= +export COMMAND=--config=env:SIGNOZ_CONFIG_CONTENT +export SIGNOZ_CONFIG_PATH=/ecs/signoz/otelcol-daemon.yaml +``` + +`` - Name of your ECS cluster. For example, **my-test-cluster** + +`` - Region in which your ECS cluster is running. For example, **us-east-1** + +  + +### Step 2: Create stack for Daemon Service + +With the environment variables set, you can proceed to create the Daemon service using `cloudformation create-stack` by running the below command using your AWS CLI: + +```bash +aws cloudformation create-stack --stack-name AOCECS-daemon-${CLUSTER_NAME}-${REGION} \ + --template-body file://daemon-template.yaml \ + --parameters ParameterKey=ClusterName,ParameterValue=${CLUSTER_NAME} \ + ParameterKey=CreateIAMRoles,ParameterValue=True \ + ParameterKey=command,ParameterValue=${COMMAND} \ + ParameterKey=SigNozConfigPath,ParameterValue=${SIGNOZ_CONFIG_PATH} \ + --capabilities CAPABILITY_NAMED_IAM \ + --region ${REGION} +``` + +  + +### Step 3: Verify Daemon Service + +To verify that the daemon service is running, you can run the following command, which should output the task ARN of the Daemon service as the output. + +```bash +aws ecs list-tasks --cluster ${CLUSTER_NAME} --region ${REGION} + +``` +  + +### Step 4: Verify Data in SigNoz + +To verify that the data is being sent to SigNoz Cloud, you can go to the dashboard section of SigNoz and import one of the following dashboards below: + +- [instancemetrics.json](https://raw.githubusercontent.com/SigNoz/dashboards/chore/ecs-dashboards/ecs-infra-metrics/instance-metrics.json) +- [hostmetrics-with-variable.json](https://raw.githubusercontent.com/SigNoz/dashboards/main/hostmetrics/hostmetrics-with-variable.json) + +  + +### Optional Step: Clean Up + +In a cloud environment where resources are billed based on usage, cleaning up resources is crucial. This step involves removing the daemon service and any associated resources that were created during the setup process to collect and forward metrics and logs from your ECS infrastructure to SigNoz. To clean up the daemon service, you can run the following command: + +```bash +aws cloudformation delete-stack --stack-name AOCECS-daemon-${CLUSTER_NAME}-${REGION} --region ${REGION} +``` + +  + +Once you follow these steps, you should be able to see your logs and metrics data coming in SigNoz Cloud. To see data for your traces, click on Continue to next step below. \ No newline at end of file diff --git a/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/ECSExternal/md-docs/ecsExternal-createOtelConfig.md b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/ECSExternal/md-docs/ecsExternal-createOtelConfig.md new file mode 100644 index 0000000000..46f5c3f453 --- /dev/null +++ b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/ECSExternal/md-docs/ecsExternal-createOtelConfig.md @@ -0,0 +1,28 @@ +## Create SigNoz OTel Collector Configuration file + +To setup the SigNoz OTel Collector config, follow these two steps: + +### Step 1: +Navigate to the AWS Parameter store and create a new parameter named **/ecs/signoz/otelcol-daemon.yaml** + +### Step 2: +Download the otelcol-daemon YAML configuration file: +```bash +wget https://github.com/SigNoz/benchmark/raw/main/ecs/otelcol-daemon.yaml +``` +  + +Update `{region}` and `SIGNOZ_INGESTION_KEY` values in your YAML configuration file with your SigNoz cloud values mentioned below: + +{region} : `{{REGION}}` + +SIGNOZ_INGESTION_KEY : `{{SIGNOZ_INGESTION_KEY}}` + +  + +Once you update these values, copy the updated content of the `otelcol-sidecar.yaml` file and paste it in the value field of the **/ecs/signoz/otelcol-daemon.yaml** parameter that you created in Step 1. + +  + +**NOTE:** +- After successful set up, feel free to remove `logging` exporter if it gets too noisy. To do so, simply remove the logging exporter from the **exporters** list in the following pipelines: `traces`, `metrics`, and `logs` from the `otelcol-daemon.yaml` file. \ No newline at end of file diff --git a/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/ECSExternal/md-docs/ecsExternal-sendData.md b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/ECSExternal/md-docs/ecsExternal-sendData.md new file mode 100644 index 0000000000..8db1606870 --- /dev/null +++ b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/ECSExternal/md-docs/ecsExternal-sendData.md @@ -0,0 +1,106 @@ +**NOTE** : If you don't want to send traces data of your application, you can skip this step. + +  + +## Send Traces Data + +To send traces data from applications deployed in ECS to SigNoz Cloud using Daemon Service we created in the previous section, follow these steps: + +### Step 1: Instrument your application +To add OpenTelemetry instrumentation to your application, check out the Application Monitoring section in onboarding you can follow the docs [here](https://signoz.io/docs/instrumentation/). + +  + +### Step 2: Add Entrypoint to your Application Container + +Add an entrypoint to the application container to set the `OTEL_EXPORTER_OTLP_ENDPOINT` environment variable to the endpoint of the daemon service. + +Obtain the endpoint or IP address of the instance on which the task is running. This can be done using the default network mode, i.e., **Bridge** + +The `entryPoint` will look like: + +```yaml +{ + ..., + "entryPoint": [ + "sh", + "-c", + "export OTEL_EXPORTER_OTLP_ENDPOINT=\"http://$(curl http://169.254.169.254/latest/meta-data/local-ipv4):4317\"; " + ], + "command": [], + ... +} +``` + +  + +In case you are using custom docker networking, you would have to use `ExtraHosts` in your task definition: + +```yaml +{ + ... + "extraHosts": [ + { + "hostname": "signoz-collector", + "ipAddress": "host-gateway" + } + ... + ] +} +``` + +Replace `` with the commands to start your application. + +  + + +### Step 3: Add Service Name of your Application + +To add the service name of your application, you need to set the `OTEL_RESOURCE_ATTRIBUTES` environment variable of the application container to `service.name=`. + +In your task definition, add the following lines: + +```bash +... + ContainerDefinitions: + - Name: + ... + Environment: + - Name: OTEL_RESOURCE_ATTRIBUTES + Value: service.name= + ... +... +``` + +If you are using JSON for task definition, then add the following lines: + +```bash +... + "containerDefinitions": [ + { + "name": "", + ... + "environment": [ + { + "name": "OTEL_RESOURCE_ATTRIBUTES", + "value": "service.name=" + } + ], + ... + } + ], +... + +``` + +  + +### Step 4: Rebuild and Deploy Application Container + +Once you follow the above steps, you need to rebuild the application container and deploy it to ECS cluster. + +  + +### Step 5: Step 5: Verify Data in SigNoz + +Generate some traffic to your application and go to your SigNoz cloud services page to see your application name in the service list. diff --git a/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/ECSExternal/md-docs/ecsExternal-setupDeamonService.md b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/ECSExternal/md-docs/ecsExternal-setupDeamonService.md new file mode 100644 index 0000000000..fc1a28fc82 --- /dev/null +++ b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/ECSExternal/md-docs/ecsExternal-setupDeamonService.md @@ -0,0 +1,21 @@ + +These steps will help you to collect **metrics, logs and traces** from your ECS infrastructure. + +## Setup Daemon Service + +  + +### Daemon Service Template + +This step guides in downloading a template which will be used to create a new service within your Amazon ECS (Elastic Container Service) cluster. The purpose of this service is to deploy a container that functions as a daemon. This service will run a container that will send data such as ECS infrastructure metrics and logs from docker containers and send it to SigNoz. + +We will use CloudFormation template which includes parameters and configurations that define how the daemon service should be set up. For example, it specifies the container image to use for the daemon, the necessary environment variables, and network settings. + +  + +Download the `daemon-template.yaml` using the command below: + +```bash +wget https://github.com/SigNoz/benchmark/raw/main/ecs/external/daemon-template.yaml +``` + diff --git a/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/ECSFargate/md-docs/ecsFargate-createOtelConfig.md b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/ECSFargate/md-docs/ecsFargate-createOtelConfig.md new file mode 100644 index 0000000000..9397301031 --- /dev/null +++ b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/ECSFargate/md-docs/ecsFargate-createOtelConfig.md @@ -0,0 +1,30 @@ +These steps will help you to collect **metrics, logs and traces** from your ECS infrastructure. + +## Create SigNoz OTel Collector Configuration file + +To setup the SigNoz OTel Collector config, follow these two steps: + +### Step 1: +Navigate to the AWS Parameter store and create a new parameter named **/ecs/signoz/otelcol-sidecar.yaml** + +### Step 2: +Download the otelcol-sidecar YAML configuration file: +```bash +wget https://github.com/SigNoz/benchmark/raw/main/ecs/otelcol-sidecar.yaml +``` +  + +Update `{region}` and `SIGNOZ_INGESTION_KEY` values in your YAML configuration file with your SigNoz cloud values mentioned below: + +{region} : `{{REGION}}` + +SIGNOZ_INGESTION_KEY : `{{SIGNOZ_INGESTION_KEY}}` + +  + +Once you update these values, copy the updated content of the `otelcol-sidecar.yaml` file and paste it in the value field of the **/ecs/signoz/otelcol-sidecar.yaml** parameter that you created in Step 1. + +  + +**NOTE:** +- After successful set up, feel free to remove `logging` exporter if it gets too noisy. To do so, simply remove the logging exporter from the **exporters** list in the following pipelines: `traces`, `metrics`, `metrics/aws` and `logs` from the `otelcol-sidecar.yaml` file. \ No newline at end of file diff --git a/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/ECSFargate/md-docs/ecsFargate-createSidecarCollectorContainer.md b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/ECSFargate/md-docs/ecsFargate-createSidecarCollectorContainer.md new file mode 100644 index 0000000000..72e75e85f7 --- /dev/null +++ b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/ECSFargate/md-docs/ecsFargate-createSidecarCollectorContainer.md @@ -0,0 +1,143 @@ +## Create Sidecar Collector Container + +This step involves integrating the SigNoz collector into your ECS task definitions as a sidecar container. The sidecar collector container will run alongside your application container(s) within the same ECS task and will collect ECS container metrics and send them to SigNoz Cloud. Follow these steps to create the Sidecar collector container: + +### Step 1: Update task definition of your application + +In your ECS task definition, include a new container definition specifically for the sidecar container. This container will operate alongside your main application container(s) within the same task definition. The JSON configuration for that will look like this: + +```json +{ + ... + "containerDefinitions": [ + ..., + { + "name": "signoz-collector", + "image": "signoz/signoz-otel-collector:0.88.13", + "user": "root", + "command": [ + "--config=env:SIGNOZ_CONFIG_CONTENT" + ], + "secrets": [ + { + "name": "SIGNOZ_CONFIG_CONTENT", + "valueFrom": "/ecs/signoz/otelcol-sidecar.yaml" + } + ], + "memory": 1024, + "cpu": 512, + "essential": true, + "portMappings": [ + { + "protocol": "tcp", + "containerPort": 4317 + }, + { + "protocol": "tcp", + "containerPort": 4318 + }, + { + "containerPort": 8006, + "protocol": "tcp" + } + ], + "healthCheck": { + "command": [ + "CMD-SHELL", + "wget -qO- http://localhost:13133/ || exit 1" + ], + "interval": 5, + "timeout": 6, + "retries": 5, + "startPeriod": 1 + }, + "logConfiguration": { + "logDriver": "awslogs", + "options": { + "awslogs-group": "/ecs/signoz-otel-EC2-sidcar", + "awslogs-region": "", + "awslogs-stream-prefix": "ecs", + "awslogs-create-group": "True" + } + } + } + ] +... +} +``` + +Replace `` with the Region for your ECS cluster. For example, **us-east-1** + +  + +### Step 2: Update ECS Task Execution Role + +To update the Task Execution role, follow these steps: + +1. **Identify the Role:** Identify the IAM role used by your ECS tasks for execution. It's often named something like **ecsTaskExecutionRole**. + +2. **Edit the Role:** Navigate to the IAM console in the AWS Management Console, find the role by name, and open its details page. + +3. **Attach Policy or add inline Policy:** + +There are two ways to grant access to the Parameter store: + +- **Attach AWS Managed Policies:** If the role doesn't already have the following policy, attach it: + + - `AmazonSSMReadOnlyAccess` + +- **Add Inline Policy:** Alternatively, for more granular control, you can create an inline policy that specifically grants access to only the necessary resources in the Parameter Store. The JSON for the inline policy will be: + +```json +{ + "Version": "2012-10-17", + "Statement": [ + { + "Action": [ + "ssm:GetParameter" + ], + "Resource": [ + "arn:aws:ssm:::parameter/ecs/signoz/otelcol-sidecar.yaml" + ], + "Effect": "Allow" + } + ] +} +``` + +  + +### Step 3: Update ECS Task Role + +To update the ECS Task Role, follow these steps: + +1. **Identify the Role:** Determine the IAM role your ECS tasks are currently using to interact with AWS services. This role is specified in the ECS task definition under the "taskRoleArn" field. + +2. **Edit the Role:** Go to the IAM section of the AWS Management Console, locate the role by its name, and open its configuration. + +3. **Attach Policies or Add Inline Policy:** + +There are two ways to grant access to the Parameter store: + +- Attach AWS Managed Policies: If the role doesn't already have the following policies, attach it: + + - AmazonSSMReadOnlyAccess + +- **Add Inline Policy for Granular Access:** For tighter security, you might opt to create an inline policy that specifies exactly which resources the tasks can access and what actions they can perform on those resources. This is particularly important for accessing specific resources like the Parameter Store parameters used by the SigNoz sidecar. The JSON for the inline policy will be: + +```json +{ + "Version": "2012-10-17", + "Statement": [ + { + "Action": [ + "ssm:GetParameter" + ], + "Resource": [ + "arn:aws:ssm:::parameter/ecs/signoz/otelcol-sidecar.yaml" + ], + "Effect": "Allow" + } + ] +} +``` diff --git a/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/ECSFargate/md-docs/ecsFargate-deployTaskDefinition.md b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/ECSFargate/md-docs/ecsFargate-deployTaskDefinition.md new file mode 100644 index 0000000000..357dee0e9f --- /dev/null +++ b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/ECSFargate/md-docs/ecsFargate-deployTaskDefinition.md @@ -0,0 +1,10 @@ +## Deploy the task definition + +If your application runs as an ECS service, you update the service to use the new revision of your task definition. This tells ECS to start new tasks based on this updated definition and gracefully replace the old tasks with the new ones, ensuring minimal disruption to your application. + +**NOTE:** Once the task is running, you should be able to see SigNoz sidecar container logs in CloudWatch Logs because we have set the logDriver parameter to be `awslogs` in our task definition. + + +## Verify data in SigNoz + +To verify that your sidecar container is running, go to the Dashboard section of SigNoz Cloud and import the dashboard **ECS - Container Metrics** Dashboard from [here](https://raw.githubusercontent.com/SigNoz/dashboards/main/ecs-infra-metrics/container-metrics.json). \ No newline at end of file diff --git a/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/ECSFargate/md-docs/ecsFargate-sendData.md b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/ECSFargate/md-docs/ecsFargate-sendData.md new file mode 100644 index 0000000000..0e5b55a028 --- /dev/null +++ b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/ECSFargate/md-docs/ecsFargate-sendData.md @@ -0,0 +1,84 @@ +**NOTE** : If you don't want to send traces data of your application, you can skip this step. + +  + +## Send Traces Data + +To send traces data from applications deployed in ECS to SigNoz Cloud using sidecar container we created in the previous steps, follow these steps: + +### Step 1: Instrument your application +To add OpenTelemetry instrumentation to your application, check out the Application Monitoring section in onboarding you can follow the docs [here](https://signoz.io/docs/instrumentation/). + +  + +### Step 2: Configure OTLP Endpoint + +In your application task definition, you need to set the OTLP endpoint to the endpoint of the sidecar container. This can be done by setting the environment variable `OTEL_EXPORTER_OTLP_ENDPOINT` to the endpoint of the sidecar container. + +Depending on the Network Mode, the ECS task definition will change: + +For **Bridge** network mode, ECS task definition will be: + +```json +{ + ... + "containerDefinitions": [ + { + "name": "", + "environment": [ + { + "name": "OTEL_EXPORTER_OTLP_ENDPOINT", + "value": "http://signoz-collector:4317" + }, + { + "name": "OTEL_RESOURCE_ATTRIBUTES", + "value": "service.name=" + } + ], + "links": [ + "signoz-collector" + ], + ... + } + ] +} +``` +  + +For **AWS VCP** network mode, ECS task definition will be: + +```json +{ + ... + "containerDefinitions": [ + { + "name": "", + "environment": [ + { + "name": "OTEL_EXPORTER_OTLP_ENDPOINT", + "value": "http://localhost:4317" + }, + { + "name": "OTEL_RESOURCE_ATTRIBUTES", + "value": "service.name=" + } + ], + ... + } + ] +} +``` + +Replace `` with the name of your container. + +  + +### Step 3: Rebuild and Deploy Application Container + +After instrumenting your application and configuring the OTLP endpoint, you'll need to rebuild your application container with these changes and deploy it to ECS cluster using the same task definition that we used in the previous section. + +  + +### Step 4: Verify Data in SigNoz + +Generate some traffic to your application and go to your SigNoz cloud **Services** page to see your application name in the service list. diff --git a/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/ECSFargate/md-docs/ecsFargate-sendLogs.md b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/ECSFargate/md-docs/ecsFargate-sendLogs.md new file mode 100644 index 0000000000..1b71737d91 --- /dev/null +++ b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/ECSFargate/md-docs/ecsFargate-sendLogs.md @@ -0,0 +1,133 @@ +**NOTE** : If you don't want to send logs data of your applications deployed on ECS, you can skip this step. + +## Send Logs Data + +To send logs data from applications deployed in ECS to SigNoz Cloud using sidecar container we created in the previous steps, follow these steps: + +### Step 1: Configure Log Router + +Add a new container definition in your ECS task definition for the Fluent Bit log router: + +```json +{ + ... + { + "name": "signoz-log-router", + "image": "906394416424.dkr.ecr.us-west-2.amazonaws.com/aws-for-fluent-bit:stable", + "cpu": 250, + "memory": 512, + "essential": true, + "dependsOn": [ + { + "containerName": "signoz-collector", + "condition": "HEALTHY" + } + ], + "logConfiguration": { + "logDriver": "awslogs", + "options": { + "awslogs-create-group": "True", + "awslogs-group": "/ecs/ecs-signoz-log-router", + "awslogs-region": "us-east-1", + "awslogs-stream-prefix": "ecs" + } + }, + "firelensConfiguration": { + "type": "fluentbit", + "options": { + "enable-ecs-log-metadata": "true" + } + } + } +} +``` + +**NOTE:** When collecting logs from multiple applications, it is recommended to use `-log-router` pattern instead of `signoz-log-router` for container name and `awslogs-group`. It helps to separate log router of different application. + +  + +### Step 2: Send logs to Sidecar Container + +In your application task definition, you need to use `awsfirelens` log driver to send logs to the sidecar otel-collector container via Fluent Bit log router. + +Depending on the Network Mode, update the ECS task definition: + +For **Bridge** network mode: + +```json +{ + ... + "containerDefinitions": [ + { + "name": "", + "dependsOn": [ + { + "containerName": "signoz-log-router", + "condition": "START" + } + ], + "logConfiguration": { + "logDriver": "awsfirelens", + "options": { + "Name": "forward", + "Match": "*", + "Host": "signoz-collector", + "Port": "8006", + "tls": "off", + "tls.verify": "off" + } + }, + "links": [ + "signoz-collector" + ], + ... + } + ] +} +``` + +  + +For **AWS VCP** network mode: + +```json +{ + ... + "containerDefinitions": [ + { + "name": "", + "dependsOn": [ + { + "containerName": "signoz-log-router", + "condition": "START" + } + ], + "logConfiguration": { + "logDriver": "awsfirelens", + "options": { + "Name": "forward", + "Match": "*", + "Host": "localhost", + "Port": "8006", + "tls": "off", + "tls.verify": "off" + } + } + ... + } + ] +} +``` + +### Step 3: Rebuild and Deploy Application Container + +Rebuild your application container and deploy it to ECS cluster using the same task definition that we updated in the previous section. + +  + +### Step 4: Verify Data in SigNoz + +Generate some logs from your application and go to your SigNoz cloud **Logs** page to see your application logs. + + + diff --git a/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EKS/eks-installOtelCollector.md b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EKS/eks-installOtelCollector.md new file mode 100644 index 0000000000..946b7fbdbf --- /dev/null +++ b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EKS/eks-installOtelCollector.md @@ -0,0 +1,24 @@ +## Install otel-collector in your Kubernetes infra +  + +Add the SigNoz Helm Chart repository +```bash +helm repo add signoz https://charts.signoz.io +``` +  + +If the chart is already present, update the chart to the latest using: +```bash +helm repo update +``` +  + +Install the Kubernetes Infrastructure chart provided by SigNoz +```bash +helm install my-release signoz/k8s-infra \ +--set otelCollectorEndpoint=ingest.{{REGION}}.signoz.cloud:443 \ +--set otelInsecure=false \ +--set signozApiKey={{SIGNOZ_INGESTION_KEY}} \ +--set global.clusterName= +``` +- Replace `` with the name of the Kubernetes cluster or a unique identifier of the cluster. diff --git a/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EKS/eks-monitorUsingDashboard.md b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EKS/eks-monitorUsingDashboard.md new file mode 100644 index 0000000000..77bd5cb87c --- /dev/null +++ b/frontend/src/container/OnboardingContainer/Modules/AwsMonitoring/EKS/eks-monitorUsingDashboard.md @@ -0,0 +1,16 @@ +## Monitor using Dashboards + +To visualize the Kubernetes Metrics, you can use one of the following pre-built Dashboards: + +- [K8s Node-Level Metrics](https://github.com/SigNoz/dashboards/blob/main/k8s-node-%26-pod-metrics/k8s-node-level-metrics.json) +- [K8s Pod_level Metrics](https://github.com/SigNoz/dashboards/blob/main/k8s-node-%26-pod-metrics/k8s-pod-level-metrics.json) + +You should copy the JSON data in these files and create a New Dashboard in the Dashboard Tab of SigNoz. + +  + +By following the previous step, you should also be able to see Kubernetes Pod logs in the logs Section of SigNoz. + +  + +To send traces for your application deployed on your Kubernetes cluster, checkout the Application monitoring section of onboarding. \ No newline at end of file diff --git a/frontend/src/container/OnboardingContainer/Modules/LogsManagement/ApplicationLogs/md-docs/LinuxAMD64/appplicationLogs-linuxamd64-configureReceiver.md b/frontend/src/container/OnboardingContainer/Modules/LogsManagement/ApplicationLogs/md-docs/LinuxAMD64/appplicationLogs-linuxamd64-configureReceiver.md index 2b2d346f3a..d2785da486 100644 --- a/frontend/src/container/OnboardingContainer/Modules/LogsManagement/ApplicationLogs/md-docs/LinuxAMD64/appplicationLogs-linuxamd64-configureReceiver.md +++ b/frontend/src/container/OnboardingContainer/Modules/LogsManagement/ApplicationLogs/md-docs/LinuxAMD64/appplicationLogs-linuxamd64-configureReceiver.md @@ -14,7 +14,7 @@ Replace `/tmp/app.log` with the path to your log file. Note: change the `start_at` value to `beginning` if you want to read the log file from the beginning. It may be useful if you want to send old logs to SigNoz. The log records older than the standard log retention period (default 15 days) will be discarded. -For more configurations that are available for syslog receiver please check [here](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/filelogreceiver). +For more configurations that are available for filelog receiver please check [here](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/filelogreceiver). ### Step 2: Include filelog receiver in the Pipeline We will modify our pipeline inside `config.yaml` to include the receiver we have created above. diff --git a/frontend/src/container/OnboardingContainer/Modules/LogsManagement/ApplicationLogs/md-docs/LinuxARM64/appplicationLogs-linuxarm64-configureReceiver.md b/frontend/src/container/OnboardingContainer/Modules/LogsManagement/ApplicationLogs/md-docs/LinuxARM64/appplicationLogs-linuxarm64-configureReceiver.md index 2b2d346f3a..d2785da486 100644 --- a/frontend/src/container/OnboardingContainer/Modules/LogsManagement/ApplicationLogs/md-docs/LinuxARM64/appplicationLogs-linuxarm64-configureReceiver.md +++ b/frontend/src/container/OnboardingContainer/Modules/LogsManagement/ApplicationLogs/md-docs/LinuxARM64/appplicationLogs-linuxarm64-configureReceiver.md @@ -14,7 +14,7 @@ Replace `/tmp/app.log` with the path to your log file. Note: change the `start_at` value to `beginning` if you want to read the log file from the beginning. It may be useful if you want to send old logs to SigNoz. The log records older than the standard log retention period (default 15 days) will be discarded. -For more configurations that are available for syslog receiver please check [here](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/filelogreceiver). +For more configurations that are available for filelog receiver please check [here](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/filelogreceiver). ### Step 2: Include filelog receiver in the Pipeline We will modify our pipeline inside `config.yaml` to include the receiver we have created above. diff --git a/frontend/src/container/OnboardingContainer/Modules/LogsManagement/ApplicationLogs/md-docs/MacOsAMD64/appplicationLogs-macosamd64-configureReceiver.md b/frontend/src/container/OnboardingContainer/Modules/LogsManagement/ApplicationLogs/md-docs/MacOsAMD64/appplicationLogs-macosamd64-configureReceiver.md index 2b2d346f3a..d2785da486 100644 --- a/frontend/src/container/OnboardingContainer/Modules/LogsManagement/ApplicationLogs/md-docs/MacOsAMD64/appplicationLogs-macosamd64-configureReceiver.md +++ b/frontend/src/container/OnboardingContainer/Modules/LogsManagement/ApplicationLogs/md-docs/MacOsAMD64/appplicationLogs-macosamd64-configureReceiver.md @@ -14,7 +14,7 @@ Replace `/tmp/app.log` with the path to your log file. Note: change the `start_at` value to `beginning` if you want to read the log file from the beginning. It may be useful if you want to send old logs to SigNoz. The log records older than the standard log retention period (default 15 days) will be discarded. -For more configurations that are available for syslog receiver please check [here](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/filelogreceiver). +For more configurations that are available for filelog receiver please check [here](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/filelogreceiver). ### Step 2: Include filelog receiver in the Pipeline We will modify our pipeline inside `config.yaml` to include the receiver we have created above. diff --git a/frontend/src/container/OnboardingContainer/Modules/LogsManagement/ApplicationLogs/md-docs/MacOsARM64/appplicationLogs-macosarm64-configureReceiver.md b/frontend/src/container/OnboardingContainer/Modules/LogsManagement/ApplicationLogs/md-docs/MacOsARM64/appplicationLogs-macosarm64-configureReceiver.md index 2b2d346f3a..d2785da486 100644 --- a/frontend/src/container/OnboardingContainer/Modules/LogsManagement/ApplicationLogs/md-docs/MacOsARM64/appplicationLogs-macosarm64-configureReceiver.md +++ b/frontend/src/container/OnboardingContainer/Modules/LogsManagement/ApplicationLogs/md-docs/MacOsARM64/appplicationLogs-macosarm64-configureReceiver.md @@ -14,7 +14,7 @@ Replace `/tmp/app.log` with the path to your log file. Note: change the `start_at` value to `beginning` if you want to read the log file from the beginning. It may be useful if you want to send old logs to SigNoz. The log records older than the standard log retention period (default 15 days) will be discarded. -For more configurations that are available for syslog receiver please check [here](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/filelogreceiver). +For more configurations that are available for filelog receiver please check [here](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/filelogreceiver). ### Step 2: Include filelog receiver in the Pipeline We will modify our pipeline inside `config.yaml` to include the receiver we have created above. diff --git a/frontend/src/container/OnboardingContainer/OnboardingContainer.tsx b/frontend/src/container/OnboardingContainer/OnboardingContainer.tsx index 797e3b396b..ae294e2fb8 100644 --- a/frontend/src/container/OnboardingContainer/OnboardingContainer.tsx +++ b/frontend/src/container/OnboardingContainer/OnboardingContainer.tsx @@ -21,11 +21,13 @@ import { } from './context/OnboardingContext'; import { DataSourceType } from './Steps/DataSource/DataSource'; import { + defaultAwsServices, defaultInfraMetricsType, defaultLogsType, } from './utils/dataSourceUtils'; import { APM_STEPS, + AWS_MONITORING_STEPS, getSteps, INFRASTRUCTURE_MONITORING_STEPS, LOGS_MANAGEMENT_STEPS, @@ -35,6 +37,7 @@ export enum ModulesMap { APM = 'APM', LogsManagement = 'LogsManagement', InfrastructureMonitoring = 'InfrastructureMonitoring', + AwsMonitoring = 'AwsMonitoring', } export interface ModuleProps { @@ -68,6 +71,12 @@ export const useCases = { desc: 'Monitor Kubernetes infrastructure metrics, hostmetrics, or metrics of any third-party integration', }, + AwsMonitoring: { + id: ModulesMap.AwsMonitoring, + title: 'AWS Monitoring', + desc: + 'Monitor your traces, logs and metrics for AWS services like EC2, ECS, EKS etc.', + }, }; export default function Onboarding(): JSX.Element { @@ -173,6 +182,13 @@ export default function Onboarding(): JSX.Element { setSelectedModuleSteps(LOGS_MANAGEMENT_STEPS); updateSelectedDataSource(defaultLogsType); } + } else if (selectedModule?.id === ModulesMap.AwsMonitoring) { + if (selectedDataSource) { + setModuleStepsBasedOnSelectedDataSource(selectedDataSource); + } else { + setSelectedModuleSteps(AWS_MONITORING_STEPS); + updateSelectedDataSource(defaultAwsServices); + } } else if (selectedModule?.id === ModulesMap.APM) { handleAPMSteps(); } diff --git a/frontend/src/container/OnboardingContainer/Steps/MarkdownStep/MarkdownStep.tsx b/frontend/src/container/OnboardingContainer/Steps/MarkdownStep/MarkdownStep.tsx index d39e83ed53..36b07cd191 100644 --- a/frontend/src/container/OnboardingContainer/Steps/MarkdownStep/MarkdownStep.tsx +++ b/frontend/src/container/OnboardingContainer/Steps/MarkdownStep/MarkdownStep.tsx @@ -1,6 +1,7 @@ /* eslint-disable @typescript-eslint/ban-ts-comment */ import { MarkdownRenderer } from 'components/MarkdownRenderer/MarkdownRenderer'; import { ApmDocFilePaths } from 'container/OnboardingContainer/constants/apmDocFilePaths'; +import { AwsMonitoringDocFilePaths } from 'container/OnboardingContainer/constants/awsMonitoringDocFilePaths'; import { InfraMonitoringDocFilePaths } from 'container/OnboardingContainer/constants/infraMonitoringDocFilePaths'; import { LogsManagementDocFilePaths } from 'container/OnboardingContainer/constants/logsManagementDocFilePaths'; import { @@ -66,6 +67,8 @@ export default function MarkdownStep(): JSX.Element { docFilePaths = LogsManagementDocFilePaths; } else if (selectedModule?.id === ModulesMap.InfrastructureMonitoring) { docFilePaths = InfraMonitoringDocFilePaths; + } else if (selectedModule?.id === ModulesMap.AwsMonitoring) { + docFilePaths = AwsMonitoringDocFilePaths; } // @ts-ignore if (docFilePaths && docFilePaths[path]) { diff --git a/frontend/src/container/OnboardingContainer/common/ModuleStepsContainer/ModuleStepsContainer.tsx b/frontend/src/container/OnboardingContainer/common/ModuleStepsContainer/ModuleStepsContainer.tsx index 7362e9a47d..272d2b5083 100644 --- a/frontend/src/container/OnboardingContainer/common/ModuleStepsContainer/ModuleStepsContainer.tsx +++ b/frontend/src/container/OnboardingContainer/common/ModuleStepsContainer/ModuleStepsContainer.tsx @@ -151,6 +151,10 @@ export default function ModuleStepsContainer({ history.push(ROUTES.LOGS_EXPLORER); } else if (selectedModule.id === ModulesMap.InfrastructureMonitoring) { history.push(ROUTES.APPLICATION); + } else if (selectedModule.id === ModulesMap.AwsMonitoring) { + history.push(ROUTES.APPLICATION); + } else { + history.push(ROUTES.APPLICATION); } }; @@ -264,6 +268,69 @@ export default function ModuleStepsContainer({ module: activeStep?.module?.id, }); break; + case stepsMap.sendLogsCloudwatch: + trackEvent('Onboarding V2: Send Logs Cloudwatch', { + dataSource: selectedDataSource?.id, + environment: selectedEnvironment, + module: activeStep?.module?.id, + }); + break; + case stepsMap.setupDaemonService: + trackEvent('Onboarding V2: Setup ECS Daemon Service', { + dataSource: selectedDataSource?.id, + environment: selectedEnvironment, + module: activeStep?.module?.id, + }); + break; + case stepsMap.createOtelConfig: + trackEvent('Onboarding V2: Create ECS OTel Config', { + dataSource: selectedDataSource?.id, + environment: selectedEnvironment, + module: activeStep?.module?.id, + }); + break; + case stepsMap.createDaemonService: + trackEvent('Onboarding V2: Create ECS Daemon Service', { + dataSource: selectedDataSource?.id, + environment: selectedEnvironment, + module: activeStep?.module?.id, + }); + break; + case stepsMap.ecsSendData: + trackEvent('Onboarding V2: ECS send traces data', { + dataSource: selectedDataSource?.id, + environment: selectedEnvironment, + module: activeStep?.module?.id, + }); + break; + case stepsMap.createSidecarCollectorContainer: + trackEvent('Onboarding V2: ECS create Sidecar Container', { + dataSource: selectedDataSource?.id, + environment: selectedEnvironment, + module: activeStep?.module?.id, + }); + break; + case stepsMap.deployTaskDefinition: + trackEvent('Onboarding V2: ECS deploy task definition', { + dataSource: selectedDataSource?.id, + environment: selectedEnvironment, + module: activeStep?.module?.id, + }); + break; + case stepsMap.ecsSendLogsData: + trackEvent('Onboarding V2: ECS Fargate send logs data', { + dataSource: selectedDataSource?.id, + environment: selectedEnvironment, + module: activeStep?.module?.id, + }); + break; + case stepsMap.monitorDashboard: + trackEvent('Onboarding V2: EKS monitor dashboard', { + dataSource: selectedDataSource?.id, + environment: selectedEnvironment, + module: activeStep?.module?.id, + }); + break; default: break; } diff --git a/frontend/src/container/OnboardingContainer/constants/awsMonitoringDocFilePaths.ts b/frontend/src/container/OnboardingContainer/constants/awsMonitoringDocFilePaths.ts new file mode 100644 index 0000000000..76ba77eebf --- /dev/null +++ b/frontend/src/container/OnboardingContainer/constants/awsMonitoringDocFilePaths.ts @@ -0,0 +1,127 @@ +/* eslint-disable simple-import-sort/imports */ + +// Application Logs Start + +// LINUX AMD 64 +import AwsMonitoring_awsEc2ApplicationLogs_linuxAMD64_setupOtelCollector from '../Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/LinuxAMD64/appplicationLogs-linuxamd64-installOtelCollector.md'; +import AwsMonitoring_awsEc2ApplicationLogs_linuxAMD64_configureReceiver from '../Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/LinuxAMD64/appplicationLogs-linuxamd64-configureReceiver.md'; +import AwsMonitoring_awsEc2ApplicationLogs_linuxAMD64_restartOtelCollector from '../Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/LinuxAMD64/appplicationLogs-linuxamd64-runOtelCollector.md'; + +// LINUX ARM 64 +import AwsMonitoring_awsEc2ApplicationLogs_linuxARM64_setupOtelCollector from '../Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/LinuxARM64/appplicationLogs-linuxarm64-installOtelCollector.md'; +import AwsMonitoring_awsEc2ApplicationLogs_linuxARM64_configureReceiver from '../Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/LinuxARM64/appplicationLogs-linuxarm64-configureReceiver.md'; +import AwsMonitoring_awsEc2ApplicationLogs_linuxARM64_restartOtelCollector from '../Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/LinuxARM64/appplicationLogs-linuxarm64-runOtelCollector.md'; + +// MacOS AMD 64 +import AwsMonitoring_awsEc2ApplicationLogs_macOsAMD64_setupOtelCollector from '../Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/MacOsAMD64/appplicationLogs-macosamd64-installOtelCollector.md'; +import AwsMonitoring_awsEc2ApplicationLogs_macOsAMD64_configureReceiver from '../Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/MacOsAMD64/appplicationLogs-macosamd64-configureReceiver.md'; +import AwsMonitoring_awsEc2ApplicationLogs_macOsAMD64_restartOtelCollector from '../Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/MacOsAMD64/appplicationLogs-macosamd64-runOtelCollector.md'; + +// MacOS ARM 64 +import AwsMonitoring_awsEc2ApplicationLogs_macOsARM64_setupOtelCollector from '../Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/MacOsARM64/appplicationLogs-macosarm64-installOtelCollector.md'; +import AwsMonitoring_awsEc2ApplicationLogs_macOsARM64_configureReceiver from '../Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/MacOsARM64/appplicationLogs-macosarm64-configureReceiver.md'; +import AwsMonitoring_awsEc2ApplicationLogs_macOsARM64_restartOtelCollector from '../Modules/AwsMonitoring/EC2ApplicationLogs/md-docs/MacOsARM64/appplicationLogs-macosarm64-runOtelCollector.md'; +// Application Logs End + +// Hostmetrics Start +// LINUX AMD 64 +import AwsMonitoring_awsEc2InfrastructureMetrics_linuxAMD64_setupOtelCollector from '../Modules/AwsMonitoring/EC2InfrastructureMetrics/md-docs/LinuxAMD64/hostmetrics-setupOtelCollector.md'; +import AwsMonitoring_awsEc2InfrastructureMetrics_linuxAMD64_configureHostmetricsJson from '../Modules/AwsMonitoring/EC2InfrastructureMetrics/md-docs/LinuxAMD64/hostmetrics-configureHostmetricsJson.md'; + +// LINUX ARM 64 +import AwsMonitoring_awsEc2InfrastructureMetrics_linuxARM64_setupOtelCollector from '../Modules/AwsMonitoring/EC2InfrastructureMetrics/md-docs/LinuxARM64/hostmetrics-setupOtelCollector.md'; +import AwsMonitoring_awsEc2InfrastructureMetrics_linuxARM64_configureHostmetricsJson from '../Modules/AwsMonitoring/EC2InfrastructureMetrics/md-docs/LinuxARM64/hostmetrics-configureHostmetricsJson.md'; + +// MacOS AMD 64 +import AwsMonitoring_awsEc2InfrastructureMetrics_macOsAMD64_setupOtelCollector from '../Modules/AwsMonitoring/EC2InfrastructureMetrics/md-docs/MacOsAMD64/hostmetrics-setupOtelCollector.md'; +import AwsMonitoring_awsEc2InfrastructureMetrics_macOsAMD64_configureHostmetricsJson from '../Modules/AwsMonitoring/EC2InfrastructureMetrics/md-docs/MacOsAMD64/hostmetrics-configureHostmetricsJson.md'; + +// MacOS ARM 64 +import AwsMonitoring_awsEc2InfrastructureMetrics_macOsARM64_setupOtelCollector from '../Modules/AwsMonitoring/EC2InfrastructureMetrics/md-docs/MacOsARM64/hostmetrics-setupOtelCollector.md'; +import AwsMonitoring_awsEc2InfrastructureMetrics_macOsARM64_configureHostmetricsJson from '../Modules/AwsMonitoring/EC2InfrastructureMetrics/md-docs/MacOsARM64/hostmetrics-configureHostmetricsJson.md'; + +// Hostmetrics End +// AwsMonitoring_awsEc2ApplicationLogs_linuxAMD64_restartOtelCollector, + +import AwsMonitoring_awsEcsEc2_setupDaemonService from '../Modules/AwsMonitoring/ECSEc2/md-docs/ecsEc2-setupDeamonService.md'; +import AwsMonitoring_awsEcsEc2_createOtelConfig from '../Modules/AwsMonitoring/ECSEc2/md-docs/ecsEc2-createOtelConfig.md'; +import AwsMonitoring_awsEcsEc2_createDaemonService from '../Modules/AwsMonitoring/ECSEc2/md-docs/ecsEc2-createDaemonService.md'; +import AwsMonitoring_awsEcsEc2_ecsSendData from '../Modules/AwsMonitoring/ECSEc2/md-docs/ecsEc2-sendData.md'; + +import AwsMonitoring_awsEcsExternal_setupDaemonService from '../Modules/AwsMonitoring/ECSExternal/md-docs/ecsExternal-setupDeamonService.md'; +import AwsMonitoring_awsEcsExternal_createOtelConfig from '../Modules/AwsMonitoring/ECSExternal/md-docs/ecsExternal-createOtelConfig.md'; +import AwsMonitoring_awsEcsExternal_createDaemonService from '../Modules/AwsMonitoring/ECSExternal/md-docs/ecsExternal-createDaemonService.md'; +import AwsMonitoring_awsEcsExternal_ecsSendData from '../Modules/AwsMonitoring/ECSExternal/md-docs/ecsExternal-sendData.md'; + +import AwsMonitoring_awsEcsFargate_createOtelConfig from '../Modules/AwsMonitoring/ECSFargate/md-docs/ecsFargate-createOtelConfig.md'; +import AwsMonitoring_awsEcsFargate_createSidecarCollectorContainer from '../Modules/AwsMonitoring/ECSFargate/md-docs/ecsFargate-createSidecarCollectorContainer.md'; +import AwsMonitoring_awsEcsFargate_deployTaskDefinition from '../Modules/AwsMonitoring/ECSFargate/md-docs/ecsFargate-deployTaskDefinition.md'; +import AwsMonitoring_awsEcsFargate_ecsSendData from '../Modules/AwsMonitoring/ECSFargate/md-docs/ecsFargate-sendData.md'; +import AwsMonitoring_awsEcsFargate_ecsSendLogsData from '../Modules/AwsMonitoring/ECSFargate/md-docs/ecsFargate-sendLogs.md'; + +// AWS EKS + +import AwsMonitoring_awsEks_setupOtelCollector from '../Modules/AwsMonitoring/EKS/eks-installOtelCollector.md'; +import AwsMonitoring_awsEks_monitorDashboard from '../Modules/AwsMonitoring/EKS/eks-monitorUsingDashboard.md'; + +export const AwsMonitoringDocFilePaths = { + /// /// AWS EC2 Application Logs + + // Linux AMD64 + AwsMonitoring_awsEc2ApplicationLogs_linuxAMD64_setupOtelCollector, + AwsMonitoring_awsEc2ApplicationLogs_linuxAMD64_configureReceiver, + AwsMonitoring_awsEc2ApplicationLogs_linuxAMD64_restartOtelCollector, + // LINUX ARM 64 + AwsMonitoring_awsEc2ApplicationLogs_linuxARM64_setupOtelCollector, + AwsMonitoring_awsEc2ApplicationLogs_linuxARM64_configureReceiver, + AwsMonitoring_awsEc2ApplicationLogs_linuxARM64_restartOtelCollector, + // MacOS AMD 64 + AwsMonitoring_awsEc2ApplicationLogs_macOsAMD64_setupOtelCollector, + AwsMonitoring_awsEc2ApplicationLogs_macOsAMD64_configureReceiver, + AwsMonitoring_awsEc2ApplicationLogs_macOsAMD64_restartOtelCollector, + // MacOS ARM 64 + AwsMonitoring_awsEc2ApplicationLogs_macOsARM64_setupOtelCollector, + AwsMonitoring_awsEc2ApplicationLogs_macOsARM64_configureReceiver, + AwsMonitoring_awsEc2ApplicationLogs_macOsARM64_restartOtelCollector, + + /// /// AWS EC2 Infrastructure Metrics + + // Linux AMD64 + AwsMonitoring_awsEc2InfrastructureMetrics_linuxAMD64_setupOtelCollector, + AwsMonitoring_awsEc2InfrastructureMetrics_linuxAMD64_configureHostmetricsJson, + + // Linux ARM64 + AwsMonitoring_awsEc2InfrastructureMetrics_linuxARM64_setupOtelCollector, + AwsMonitoring_awsEc2InfrastructureMetrics_linuxARM64_configureHostmetricsJson, + + // MacOS AMD64 + AwsMonitoring_awsEc2InfrastructureMetrics_macOsAMD64_setupOtelCollector, + AwsMonitoring_awsEc2InfrastructureMetrics_macOsAMD64_configureHostmetricsJson, + + // MacOS ARM64 + AwsMonitoring_awsEc2InfrastructureMetrics_macOsARM64_setupOtelCollector, + AwsMonitoring_awsEc2InfrastructureMetrics_macOsARM64_configureHostmetricsJson, + + /// //// AWS ECS EC2 + AwsMonitoring_awsEcsEc2_setupDaemonService, + AwsMonitoring_awsEcsEc2_createOtelConfig, + AwsMonitoring_awsEcsEc2_createDaemonService, + AwsMonitoring_awsEcsEc2_ecsSendData, + + /// //// AWS ECS External + AwsMonitoring_awsEcsExternal_setupDaemonService, + AwsMonitoring_awsEcsExternal_createOtelConfig, + AwsMonitoring_awsEcsExternal_createDaemonService, + AwsMonitoring_awsEcsExternal_ecsSendData, + + /// //// AWS ECS Fargate + AwsMonitoring_awsEcsFargate_createOtelConfig, + AwsMonitoring_awsEcsFargate_createSidecarCollectorContainer, + AwsMonitoring_awsEcsFargate_deployTaskDefinition, + AwsMonitoring_awsEcsFargate_ecsSendData, + AwsMonitoring_awsEcsFargate_ecsSendLogsData, + + /// /// AWS EKS + AwsMonitoring_awsEks_setupOtelCollector, + AwsMonitoring_awsEks_monitorDashboard, +}; diff --git a/frontend/src/container/OnboardingContainer/constants/stepsConfig.tsx b/frontend/src/container/OnboardingContainer/constants/stepsConfig.tsx index 95039b9d18..57b3a597d8 100644 --- a/frontend/src/container/OnboardingContainer/constants/stepsConfig.tsx +++ b/frontend/src/container/OnboardingContainer/constants/stepsConfig.tsx @@ -27,6 +27,14 @@ export const stepsMap = { createHttpPayload: `createHttpPayload`, configureAws: `configureAws`, sendLogsCloudwatch: `sendLogsCloudwatch`, + setupDaemonService: `setupDaemonService`, + createOtelConfig: `createOtelConfig`, + createDaemonService: `createDaemonService`, + ecsSendData: `ecsSendData`, + createSidecarCollectorContainer: `createSidecarCollectorContainer`, + deployTaskDefinition: `deployTaskDefinition`, + ecsSendLogsData: `ecsSendLogsData`, + monitorDashboard: `monitorDashboard`, }; export const DataSourceStep: SelectedModuleStepProps = { @@ -153,3 +161,43 @@ export const SendLogsCloudwatch: SelectedModuleStepProps = { title: 'Send Logs', component: , }; +export const SetupDaemonService: SelectedModuleStepProps = { + id: stepsMap.setupDaemonService, + title: 'Setup Daemon Service', + component: , +}; +export const CreateOtelConfig: SelectedModuleStepProps = { + id: stepsMap.createOtelConfig, + title: 'Create OTel Config', + component: , +}; +export const CreateDaemonService: SelectedModuleStepProps = { + id: stepsMap.createDaemonService, + title: 'Create Daemon Service', + component: , +}; +export const EcsSendData: SelectedModuleStepProps = { + id: stepsMap.ecsSendData, + title: 'Send Traces Data', + component: , +}; +export const CreateSidecarCollectorContainer: SelectedModuleStepProps = { + id: stepsMap.createSidecarCollectorContainer, + title: 'Create Sidecar Collector', + component: , +}; +export const DeployTaskDefinition: SelectedModuleStepProps = { + id: stepsMap.deployTaskDefinition, + title: 'Deploy Task Definition', + component: , +}; +export const EcsSendLogsData: SelectedModuleStepProps = { + id: stepsMap.ecsSendLogsData, + title: 'Send Logs Data', + component: , +}; +export const MonitorDashboard: SelectedModuleStepProps = { + id: stepsMap.monitorDashboard, + title: 'Monitor using Dashboard ', + component: , +}; diff --git a/frontend/src/container/OnboardingContainer/utils/dataSourceUtils.ts b/frontend/src/container/OnboardingContainer/utils/dataSourceUtils.ts index 5b46b02727..7b851feac9 100644 --- a/frontend/src/container/OnboardingContainer/utils/dataSourceUtils.ts +++ b/frontend/src/container/OnboardingContainer/utils/dataSourceUtils.ts @@ -68,6 +68,7 @@ export const frameworksMap = { }, LogsManagement: {}, InfrastructureMonitoring: {}, + AwsMonitoring: {}, }; export const defaultApplicationDataSource = { @@ -212,6 +213,45 @@ const supportedInfraMetrics = [ }, ]; +export const defaultAwsServices = { + name: 'EC2 - Application Logs', + id: 'awsEc2ApplicationLogs', + imgURL: `Logos/ec2.svg`, +}; + +const supportedAwsServices = [ + { + name: 'EC2 - App/Server Logs', + id: 'awsEc2ApplicationLogs', + imgURL: `Logos/ec2.svg`, + }, + { + name: 'EC2 - Infra Metrics', + id: 'awsEc2InfrastructureMetrics', + imgURL: `Logos/ec2.svg`, + }, + { + name: 'ECS - EC2', + id: 'awsEcsEc2', + imgURL: `Logos/ecs.svg`, + }, + { + name: 'ECS - Fargate', + id: 'awsEcsFargate', + imgURL: `Logos/ecs.svg`, + }, + { + name: 'ECS - External', + id: 'awsEcsExternal', + imgURL: `Logos/ecs.svg`, + }, + { + name: 'EKS', + id: 'awsEks', + imgURL: `Logos/eks.svg`, + }, +]; + export const getDataSources = (module: ModuleProps): DataSourceType[] => { if (module.id === ModulesMap.APM) { return supportedLanguages; @@ -221,7 +261,11 @@ export const getDataSources = (module: ModuleProps): DataSourceType[] => { return supportedInfraMetrics; } - return supportedLogsTypes; + if (module.id === ModulesMap.LogsManagement) { + return supportedLogsTypes; + } + + return supportedAwsServices; }; export const getSupportedFrameworks = ({ diff --git a/frontend/src/container/OnboardingContainer/utils/getSteps.ts b/frontend/src/container/OnboardingContainer/utils/getSteps.ts index 5d3baa08b8..4ad252fa89 100644 --- a/frontend/src/container/OnboardingContainer/utils/getSteps.ts +++ b/frontend/src/container/OnboardingContainer/utils/getSteps.ts @@ -6,16 +6,24 @@ import { ConfigureHostmetricsJSON, ConfigureMetricsReceiver, ConfigureReceiver, + CreateDaemonService, CreateHttpPayload, + CreateOtelConfig, + CreateSidecarCollectorContainer, DataSourceStep, + DeployTaskDefinition, + EcsSendData, + EcsSendLogsData, EnvDetailsStep, InstallOpenTelemetryStep, LogsTestConnectionStep, + MonitorDashboard, PlotMetrics, RestartOtelCollector, RunApplicationStep, SelectMethodStep, SendLogsCloudwatch, + SetupDaemonService, SetupLogDrains, SetupOtelCollectorStep, StartContainer, @@ -47,6 +55,8 @@ export const INFRASTRUCTURE_MONITORING_STEPS: SelectedModuleStepProps[] = [ DataSourceStep, ]; +export const AWS_MONITORING_STEPS: SelectedModuleStepProps[] = [DataSourceStep]; + export const getSteps = ({ selectedDataSource, }: GetStepsProps): SelectedModuleStepProps[] => { @@ -72,6 +82,7 @@ export const getSteps = ({ case 'fluentD': case 'fluentBit': case 'logStash': + case 'awsEc2ApplicationLogs': return [ DataSourceStep, EnvDetailsStep, @@ -98,6 +109,7 @@ export const getSteps = ({ case 'kubernetesInfraMetrics': return [DataSourceStep, SetupOtelCollectorStep, PlotMetrics]; case 'hostMetrics': + case 'awsEc2InfrastructureMetrics': return [ DataSourceStep, EnvDetailsStep, @@ -111,6 +123,28 @@ export const getSteps = ({ SetupOtelCollectorStep, ConfigureMetricsReceiver, ]; + case 'awsEcsExternal': + case 'awsEcsEc2': + return [ + DataSourceStep, + SetupDaemonService, + CreateOtelConfig, + CreateDaemonService, + EcsSendData, + ]; + + case 'awsEcsFargate': + return [ + DataSourceStep, + CreateOtelConfig, + CreateSidecarCollectorContainer, + DeployTaskDefinition, + EcsSendData, + EcsSendLogsData, + ]; + case 'awsEks': + return [DataSourceStep, SetupOtelCollectorStep, MonitorDashboard]; + default: return [DataSourceStep]; }