This example is for basic study only and is not documentation.
-Full documentation: https://coralogix.com/docs/
-Requirements:
-- AWS Account
-- Intermediate to Advanced skill with ECS-Fargate
-- Sufficient permissions to configure AWS
-- Proper IDE i.e. Visual Studio Code
+
Complete the Microservices Workshop or install the OpenTelemetry Collector on your k8s cluster
Change to the proper directory for workshop example:
-
cd ./workshops/workshops/otel/ecs-fargate
+
cd ./workshops/workshops/otel/microservices
-
Step 3: Prep Requirements
-
1 - Put the following file in an S3 bucket:
-https://github.com/coralogix/telemetry-shippers/blob/master/logs/fluent-bit/ecs-fargate/base_filters.conf
-
2 - Put the following in a Systems Manager Parameter Store:
-https://github.com/coralogix/telemetry-shippers/blob/master/otel-ecs-fargate/config.yaml
-
3 - Create a role called ecsTaskExecutionRole
-that contains the AWS managed AmazonECSTaskExecutionRolePolicy
-and two example policies from this workshop:
-ecs-policy-s3-access.json
-ecs-policy-secrets-access.json
-
These two policies should be tuned for your own production security needs when going into production.
-
Step 4: Prep / Register Task
-
Prep example Task: aws-fargate-otel-demo.json
-
Update all 14 locations replacing contents bewteen < > and removing those brackets but leaving the quotes: adding task execution role, key, domain, S3 ARN, Systems Parameter etc...
-
Once prepped the task can be registered and made into a service.
-
Step 5: Launch Task
-
Launch according to your standard procedure.
-
The task creates the following containers:
-- two microservices (Client/Server)
-- FireLens log router
-- Otel collector
-
The microservice containers create a Python HTTP client and server that will generate spans and logs and send to Coralogix.
-
Step 6 - Study results in Coralogix portal
-
The shell scripts show how a the microservices example.
+
Step 3 - Deploy the example MySQL database deployment
+
In: mysql/mysqld
+source deploy-mysqld.sh
+
Step 4 - Deploy the Otel Collector MySQL Receiver
+
In mysql/mysqlreceiver
+source deploy-override.sh
+
Step 5 - Deploy the Otel SQL Query receiver Example
+
In mysql/mysqlqueryreceiver
+source deploy-override.sh
+
Step 6 - Upload dashboard example to Custom Dashboards
Change to the proper directory for workshop example:
+
cd ./workshops/workshops/otel/ecs-fargate
+
+
Step 3: Prep Requirements
+
1 - Put the following file in an S3 bucket:
+https://github.com/coralogix/telemetry-shippers/blob/master/logs/fluent-bit/ecs-fargate/base_filters.conf
+
2 - Put the following in a Systems Manager Parameter Store:
+https://github.com/coralogix/telemetry-shippers/blob/master/otel-ecs-fargate/config.yaml
+
3 - Create a role called ecsTaskExecutionRole
+that contains the AWS managed AmazonECSTaskExecutionRolePolicy
+and two example policies from this workshop:
+ecs-policy-s3-access.json
+ecs-policy-secrets-access.json
+
These two policies should be tuned for your own production security needs when going into production.
+
Step 4: Prep / Register Task
+
Prep example Task: aws-fargate-otel-demo.json
+
Update all 14 locations replacing contents bewteen < > and removing those brackets but leaving the quotes: adding task execution role, key, domain, S3 ARN, Systems Parameter etc...
+
Once prepped the task can be registered and made into a service.
+
Step 5: Launch Task
+
Launch according to your standard procedure.
+
The task creates the following containers:
+- two microservices (Client/Server)
+- FireLens log router
+- Otel collector
+
The microservice containers create a Python HTTP client and server that will generate spans and logs and send to Coralogix.
+
Step 6 - Study results in Coralogix portal
+
The shell scripts show how a the microservices example.
These workshops are designed to help learn and practice observability and practice integrations to the Coralogix platform. They include reference implementations that are easy to deploy and study.
Unless otherwise specified, these are designed to run on an Ubuntu cloud host environment.
These workshops are not documentation- Coralogix documentation is located here
Coralogix uses open standard telemetry shippers and infrastructure/application metrics/traces/logs make use of OpenTelmetry OpenTelemetry Overview and Value Proposition
These workshops are designed for advanced users such as devops, developers, and sysadmins to learn about OpenTelemetry and try it out with the Coralogix platform. They include easy-to-deploy examples and are meant to be conducted on an Ubuntu cloud environment, not on personal computers (unless otherwise specified).
Requirements for these workshops include:
Proficiency with an Integrated Development Environment (IDE) like Visual Studio Code; simple text editors like Notepad are not adequate, though VI can be used if set up as an IDE.
The computer should be set up as an integrated development environment (IDE).
An active Coralogix account and a basic understanding of its features.
Permissions to create resources like virtual machines and Kubernetes clusters in the cloud without restrictions.
Ability to set up virtual machines and Kubernetes clusters and all surrounding cloud infra necessary quickly before the workshop begins.
Direct internet access on the workshop computer, without needing a VPN.
Unrestricted access on computer and in cloud to GitHub, Helm, and the ability to use open source software.
Users should understand the programming languages being used (for example Python) if asking questions about OpenTelemetry for Python.
A unique Coralogix API Key should be ready for the workshop that will be discarded after.
The bulk of the workshop is designed for Kubernetes. If you have an existing Kubernetes cluster that can be used as a sandbox, you only need to make sure you have the following installed: - Helm - k9s
"},{"location":"prereqs/#if-you-do-not-have-a-kubernetes-sandbox-follow-the-instructions-below","title":"If you do not have a Kubernetes sandbox, follow the instructions below:","text":"
The following EC2 VM should be created, ready, and accessible before the workshop. It should be set up and already tested with access via your IDE with the software list below installed:
If that AMI is not available pick any Debian server AMI.
Install the following in advance of the workshop: - k3s - Helm - k9s
"},{"location":"otel/about-opentelemetry/","title":"Overview and Value Proposition","text":""},{"location":"otel/about-opentelemetry/#opentelemetry","title":"OpenTelemetry","text":"
OpenTelemetry is a standard organized by the Cloud Native Compute Foundation
The Cloud Native Compute Foundation publishes standards like Kubernetes and others that are the leading standards in the industry.
OpenTelemetry is comprised of two key elements: - A standard format for metrics, logs, and traces as well as standard protocols for shipping them - OpenTelemetry Software \u00a0\u00a0- OpenTelemetry Collector which can run anywhere (host/container/local) and receives, processes, and exports telemetry \u00a0\u00a0- OpenTelemetry Tracing Instrumentation for many languages that instruments your apps to emit traces and works in two ways \u00a0\u00a0\u00a0\u00a01. Automatic Instrumentation with no code changes and instruments a long list of frameworks for each language \u00a0\u00a0\u00a0\u00a02. Manual Instrumentation that is added to your code for fine grain trace span building
"},{"location":"otel/about-opentelemetry/#why-opentelemetry-because-observability-should-use-universal-standards","title":"Why OpenTelemetry? Because Observability Should Use Universal Standards","text":"
Observability means measuring a system based on its outputs.
This is contrast to installing proprietary software for monitoring/remediation purposes- if a system can simply emit telemetry natively, software is no longer needed.
In a complex environment consisting of servers, containers, cloud, many application languages, and mixes and variations of all of the above, Observability is required to be able to proactively and/or in real time discover and repair problems however sytems are so diverse that traditional post-problem find/fix monitoring solutions no longer function or are scalable.
Monitoring systems traditionally required negotiation with vendors to supply \"monitoring software\" and \"agents\" that are threaded througout an environment. This means annual negotiations are required to keep a business online because technical debt of vendor relationships has to be cured on a regular basis. As systems grow larger and more distributed and complex, the private vendor lock on monitoring creates a fatal reliability flaw in the tech stack.
No one negotiates for HTTP, SQL, HTTPS, TCP etc every year- so why should anyone negotiative for observability formats and agents? These should be based open standards and included as part of day-to-day system building and operations.
OpenTelemetry formats and tracing instrumentation allow for devops, operations, and development to scale infinitely without worry of vendor lock-in or future risk to an environment due to proprietary software.
"},{"location":"otel/ecs-ec2/","title":"OpenTelemetry for AWS ECS-EC2","text":""},{"location":"otel/ecs-ec2/#instructions","title":"Instructions","text":"
This example is for basic study only and is not documentation. Full documentation: https://coralogix.com/docs/ Requirements: - AWS Account - Intermediate to Advanced skill with ECS-EC2 - Sufficient permissions to configure AWS - Proper IDE i.e. Visual Studio Code
1 - Example ECS EC2 setup scripts to bring up and down an ECS cluster are included: ecs-cli-up.sh and ecs-cli-down.sh 2 - Identify Coralogix Distro for OpenTelemetry container version here before starting 3 - REQUIRED! Review all scripts and update variables IN CAPS 4 - Study official documentation here: https://github.com/coralogix/cloudformation-coralogix-aws/tree/master/opentelemetry/ecs-ec2
These two policies should be tuned for your own production security needs when going into production.
Deploy Coralogix Otel Collector stack in ECS EC2 Cluster
source 1-ecs-deploy-otel.sh\n
Deploy example Python application stack that will generate traces and logs
The template.yaml included in this repo from the source repo may change over time and if there are issues use the template.yaml from source repo instead.
source 2-ecs-createstack-autogen-otel.sh\n
"},{"location":"otel/ecs-ec2/#step-5-study-results-in-coralogix-portal","title":"Step 5 - Study results in Coralogix portal","text":""},{"location":"otel/ecs-ec2/#step-6-cleanup","title":"Step 6 - Cleanup","text":"
Delete Python application stack
source 3-ecs-deletestack-autogen-otel.sh \n
Delete Coralogix Otel Collector stack in ECS EC2 Cluster
source 4-ecs-deletestack-otel.sh\n
"},{"location":"otel/ecs-fargate/","title":"OpenTelemetry for AWS ECS-Fargate","text":""},{"location":"otel/ecs-fargate/#instructions","title":"Instructions","text":"
This example is for basic study only and is not documentation. Full documentation: https://coralogix.com/docs/ Requirements: - AWS Account - Intermediate to Advanced skill with ECS-Fargate - Sufficient permissions to configure AWS - Proper IDE i.e. Visual Studio Code
1 - Put the following file in an S3 bucket: https://github.com/coralogix/telemetry-shippers/blob/master/logs/fluent-bit/ecs-fargate/base_filters.conf
2 - Put the following in a Systems Manager Parameter Store: https://github.com/coralogix/telemetry-shippers/blob/master/otel-ecs-fargate/config.yaml
3 - Create a role called ecsTaskExecutionRole that contains the AWS managed AmazonECSTaskExecutionRolePolicy and two example policies from this workshop: ecs-policy-s3-access.jsonecs-policy-secrets-access.json
These two policies should be tuned for your own production security needs when going into production.
Update all 14 locations replacing contents bewteen < > and removing those brackets but leaving the quotes: adding task execution role, key, domain, S3 ARN, Systems Parameter etc...
Once prepped the task can be registered and made into a service.
The task creates the following containers: - two microservices (Client/Server) - FireLens log router - Otel collector
The microservice containers create a Python HTTP client and server that will generate spans and logs and send to Coralogix.
"},{"location":"otel/ecs-fargate/#step-6-study-results-in-coralogix-portal","title":"Step 6 - Study results in Coralogix portal","text":"
The shell scripts show how a the microservices example.
"},{"location":"otel/logparsing/logparsing/","title":"OpenTelemetry for Log Observability","text":""},{"location":"otel/logparsing/logparsing/#instructions","title":"Instructions","text":"
This example is for basic study only and is not documentation. Full documentation: https://coralogix.com/docs/ Requirements: - Coralogix Acccount - Cloud Linux host (Debian preferred but RPM flavors will work) - Updated versions and sufficient permissions for installing software - Proper IDE i.e. Visual Studio Code
"},{"location":"otel/logparsing/logparsing/#step-2-change-to-workshop-dir","title":"Step 2 - Change to workshop dir","text":"
Change to the proper directory for workshop example:
cd ./workshops/workshops/otel/logparsing/\n
"},{"location":"otel/logparsing/logparsing/#step-3-set-up-otel-collector-on-a-linux-host","title":"Step 3 - Set up Otel Collector on a Linux host","text":"
Download and install latest CONTRIB release version from here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases
Collector config.yaml must be configured with Coralogix Exporter. See the \"Send Data to Coralogix\" section for determining telemetry endpoint and and API key: https://coralogix.com/docs/guide-first-steps-coralogix/
See the config.yaml example in ./workshops/workshops/otel/logparsing/otelcol This file can be updated in /etc/otelcol/contrib/config.yaml - make a backup of the default version first.
Manage the collector using systemctl i.e. sudo systemctl restart otelcol More info is here: https://coralogix.com/docs/guide-first-steps-coralogix/
You can check Collector status with these status URLS: http://localhost:55679/debug/tracezhttp://localhost:55679/debug/pipelinez For more info: zpages docs
Requirements: - These prerequisites - A Kubernetes cluster i.e. EKS or GKE for a sandbox environment. If you cannot procure EKS or GKE See Appendix at the end of this page for a Kubernetes sandbox environment setup.
"},{"location":"otel/microservices/#step-1-install-the-opentelemetry-collector-on-your-k8s-cluster","title":"Step 1 - Install the OpenTelemetry Collector on your k8s cluster","text":"
Easy Coralogix instructions for Complete Observability are here
This deployment will cause severe sporadic problems in payment-gateway such as 500s and latency in the service response along with a drop in transaction volume. You can see the latency spikes here:
Alerts and automation can be built around span latency or Payment Gateway 500 responses.
Roll back the bad deployment for the services to return to normal:
source deploy-good.sh\n
Span latency will return to normal and Payment Gateway 500 responses will cease.
"},{"location":"otel/microservices/#step-6-study-how-opentelemetry-tracing-instrumentation-works","title":"Step 6 - Study how OpenTelemetry tracing instrumentation works","text":"
OpenTelemetry Instrumentation For Containerized Apps - Dockerfiles for the containers contain OpenTelemetry auto instrumentation for Python and are in /python root level - Study Otel Python Auto Instrumentation - Notice how the Dockerfile adds the automatic instrumentation - And observe how the kickstart script uses the instrumenting command
Kubernetes Deployments for Otel Tracing Instrumentation - .yaml deployment files are in python/yaml and show how environment variables are used to control the instrumentation - study the deploy-all.yaml which shows the environment variables that control OpenTelemetry tracing instrumentation. Focus on how the Kubernetes Downward API use of status.hostIP to tell the instrumentation where to send traces: to the IP adddress of the host node on port 4317 - this is the default GRPC endpoint for OTLP trace spans
Instrumented Applications and Frameworks - The Python apps that drive this example are in the python/apps dir - Examine the frameworks used to show how tracing picks up their execution - Note that the python requests library is used to make http requests, and that OpenTelemetry Python Instrumentation lists requests as an automatically instrumented library
"},{"location":"otel/microservices/#opentelemetry-collector-configs-for-microservices","title":"OpenTelemetry Collector Configs for Microservices","text":"
Prometheus
To study Prometheus metrics, deploy the Promteheus example metric generators. From directory level of the workshops repo:
cd /workshops/workshops/otel/microservices/prometheus\nsource deploy-prom-app.sh \n
Now two deployments appear each generating random number gauges with metric names: prom1 and prom2
We will look at two examples of collecting Prometheus metrics: - Prometheus Simple (docs here) declares explicit targts for scraping metrics - Study the override file called override-prometheus-simple.yaml to understand how it works - Update the Cluster name and Domain to match your stack and deploy: source deploy-prom-simple.sh - You can now see metrics in Coralogix portal called prom1 and prom2 - To restore original OpenTelemetry Collector config: helm rollback otel-coralogix-integration 1 - Prometheus Autodiscovery (docs here) uses various features of OpenTelmetry collector to create an autodiscovery set of receivers based on watching for changes in deployments. This will find all self declared Prometheus endpoints in deployments. - Study the override file called override-prometheus-auto.yaml to understand how it works - Update the Cluster name and Domain to match your stack and deploy: source deploy-prom-auto.sh - You can now see metrics in Coralogix portal called prom1 and prom2 - To restore original OpenTelemetry Collector config: helm rollback otel-coralogix-integration 1 - To delete the Prometheus metrics deployment:
AWS EC2 t2.2xl VM with 24GB of storage w/ Ubuntu Linux or equivalent other cloud provider
A quick k8s platform is k3s minimal Dockerless Kubernetes- use script top right of homepage: https://k3s.io/
Every time you open a new shell, to use k3s for helm, kubectl, etc you must set the appropriate env variable: sudo chmod 644 /etc/rancher/k3s/k3s.yaml && export KUBECONFIG=/etc/rancher/k3s/k3s.yaml This script is included in the workshop in the k3s folder: source ./k3s/k3s.sh
Install helm- use bash script: https://helm.sh/docs/intro/install/
Download appropriate release and gunzip / tar -xf the release https://github.com/derailed/k9s/releases
"},{"location":"otel/monolith/node/","title":"OpenTelemetry for Node.js / Monolith","text":""},{"location":"otel/monolith/node/#instructions","title":"Instructions","text":"
This example is for basic study only and is not documentation. Full documentation: https://coralogix.com/docs/ Requirements: - Coralogix acccount - Cloud Linux host (Debian is preferred- workshop instructions are for Debian Linux but if RPM is preferred instructions can be modified) - Updated versions and sufficient permissions for installing open source software - Current verson of node and npm installed https://nodejs.org/ - Ensure that the Node version is current (20 or higher). See https://deb.nodesource.com/ for Ubuntu installation instructions - Proper IDE i.e. Visual Studio Code
"},{"location":"otel/monolith/node/#step-2-change-to-workshop-dir","title":"Step 2 - Change to workshop dir","text":"
Change to the proper directory for workshop example:
cd ./workshops/workshops/otel/monolith-workshop/node/\n
"},{"location":"otel/monolith/node/#step-3-set-up-otel-collector-on-a-linux-host","title":"Step 3 - Set up Otel Collector on a Linux host","text":"
Download and install latest CONTRIB release version from here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases
Collector config.yaml must be configured with Coralogix Exporter. See the \"Send Data to Coralogix\" section for determining telemetry endpoint and and API key: https://coralogix.com/docs/guide-first-steps-coralogix/
See the config.yaml example in ./workshops/workshops/otel/monolith-workshop/node/otelcol This file can be updated in /etc/otelcol/contrib/config.yaml - make a backup of the default version first.
Manage the collector using systemctl i.e. sudo systemctl restart otelcol More info is here: https://coralogix.com/docs/guide-first-steps-coralogix/
You can check Collector status with these status URLS: http://localhost:55679/debug/tracezhttp://localhost:55679/debug/pipelinez For more info: zpages docs
"},{"location":"otel/monolith/node/#step-4-run-node-client-in-new-terminal","title":"Step 4 - Run Node client in new terminal","text":"
Demo app will make requests of https://api.github.com and require `ctrl-c`` to exit.
in ./workshops/workshops/otel/monolith-workshop/node/
Install node.js OpenTelemetry Instrumentation:
setup-node.sh\n
Setup environment variables for OpenTelemetry:
setup-node-env.sh\n
Start demo app:
start-node.sh\n
Stop app with ctrl-c when ready.
"},{"location":"otel/monolith/node/#step-5-study-results-in-coralogix-portal","title":"Step 5 - Study results in Coralogix portal","text":"
The shell scripts show how a monolith is set up and instrumented for OpenTelemetry. Traces can be found in Explore->Tracing Additionally, host metrics are available via Coralogix's metrics observability tools.
"},{"location":"otel/monolith/python/","title":"OpenTelemetry for Python / Monolith","text":""},{"location":"otel/monolith/python/#instructions","title":"Instructions","text":"
This example is for basic study only and is not documentation. Full documentation: https://coralogix.com/docs/ Requirements: - Coralogix acccount - Cloud Linux host (Debian is preferred- workshop instructions are for Debian Linux but if RPM is preferred instructions can be modified) - Current versions and sufficient permissions for installing open source software - Current versons (>3.10) of python and pip installed - Proper IDE i.e. Visual Studio Code
"},{"location":"otel/monolith/python/#step-2-change-to-workshop-dir","title":"Step 2 - Change to workshop dir","text":"
Change to the proper directory for workshop example:
cd ./workshops/workshops/otel/monolith-workshop/python/\n
"},{"location":"otel/monolith/python/#step-3-set-up-otel-collector-on-a-linux-host","title":"Step 3 - Set up Otel Collector on a Linux host","text":"
Download and install latest CONTRIB release version from here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases
Collector config.yaml must be configured with Coralogix Exporter. See the \"Send Data to Coralogix\" section for determining telemetry endpoint and and API key: https://coralogix.com/docs/guide-first-steps-coralogix/
See the config.yaml example in ./workshops/workshops/otel/monolith-workshop/ and configure this for your system / Coralogix account. This file can be updated in /etc/otelcol-contrib/config.yaml - make a backup of the default version first.
Manage the collector using systemctl i.e. sudo systemctl restart otelcol-contrib.service More info is here: https://coralogix.com/docs/guide-first-steps-coralogix/
You can check Collector status with these status URLS: http://localhost:55679/debug/tracezhttp://localhost:55679/debug/pipelinez For more info: zpages docs
"},{"location":"otel/monolith/python/#step-4-run-python-app","title":"Step 4 - Run Python App","text":""},{"location":"otel/monolith/python/#pre-requisites","title":"Pre-requisites","text":"
For ubuntu Run sudo apt upgrade to upgrde already installed packages. If you receive a message to reboot your server do so before moving on to the next steps.
Run python3 --version to check you have python3 installed. If not follow the python3 installation document for your linux distribution. For ubuntu follow
Ensure python venv is installed
Run pip3 --version to check pip3 is installed. If not follow the pip3 installation documentation for your linux distribution. For ubuntu use command sudo apt-get install python3-pip
Note: Running source setup-python.sh would output long list of packages and with messages like Successfully installed opentelemetry-instrumentation-some-package. To exit the running app, use ctrl-c and you will be in the venv shell- exit with deactivate
"},{"location":"otel/monolith/python/#step-5-study-results-in-coralogix-portal","title":"Step 5 - Study results in Coralogix portal","text":"
Logs with span/trace IDs, and a complete client/server service will be available.
"},{"location":"otel/monolith/windows/","title":"OpenTelemetry for .NET / Monolith","text":""},{"location":"otel/monolith/windows/#instructions","title":"Instructions","text":"
This example is for basic study only and is not documentation. Full documentation: https://coralogix.com/docs/ Requirements: - Windows Server 2019 or newer - Updated versions and sufficient permissions for downloading and installing software and no restrictions on GitHub domain - .NET Framework 3.5 or greater installed - PowerShell 5.1 or higher - Proper IDE i.e. Visual Studio Code
"},{"location":"otel/monolith/windows/#about-opentelemetry-for-net","title":"About OpenTelemetry For .NET","text":"
You can find the complete instruction for .NET OpenTelemetry Agent Instrumentation is in .NET OpenTelemetry GitHub Repository.
There are three key steps to sending traces from a .NET application on Windows: - Install the OpenTelemetry collector - Install OpenTelemetry .NET instrumentation - Run a sample .NET application to test traces
Download and install latest CONTRIB release version from here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases
Use the following example from this repo a template for the OTEL collector config: /workshops/workshops/otel/monolith-workshop/dotnet-windows/otelcol/config.yaml
In config.yaml adjust the domains and your Coralogix private key shown in the snippet below. Also define your application & subsystem name tags.
#config.yaml\n\nexporters:\n logging:\n verbosity: detailed\n coralogix:\n # The Coralogix traces ingress endpoint\n traces:\n endpoint: \"YOURDOMAINHERE i.e. ingress.coralogix.us:443\"\n metrics:\n endpoint: \"YOURDOMAINHERE i.e. ingress.coralogix.us:443\"\n logs:\n endpoint: \"YOURDOMAINHERE i.e. ingress.coralogix.us:443\"\n\n # Your Coralogix private key is sensitive\n private_key: \"YOURKEYHERE\"\n\n...\n\n # Traces, Metrics and Logs emitted by this OpenTelemetry exporter \n # are tagged in Coralogix with the default application and subsystem constants.\n application_name: \"MyBusinessEnvironment\"\n subsystem_name: \"MyBusinessSystem\"\n
The official Otel instrumentation guide shows the following: Run the commands below in your PowerShell. Update the \"MyServiceDisplayName\" with the name of your application.
# Download the module\n$module_url = \"https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation/releases/latest/download/OpenTelemetry.DotNet.Auto.psm1\"\n$download_path = Join-Path $env:temp \"OpenTelemetry.DotNet.Auto.psm1\"\nInvoke-WebRequest -Uri $module_url -OutFile $download_path -UseBasicParsing\n\n# Import the module to use its functions\nImport-Module $download_path\n\n# Install core files\nInstall-OpenTelemetryCore\n\n# Set up the instrumentation for the current PowerShell session\nRegister-OpenTelemetryForCurrentSession -OTelServiceName \"MyServiceDisplayName\"\n
Next, configure the follwing Environment Variables
"},{"location":"otel/monolith/windows/#step-4-example-application","title":"Step 4 - Example Application","text":"
You can download & instrument the example application: ./workshops/workshops/otel/monolith-workshop/dotnet-windows/ExampleApp/ provided in this repository for testing.
The example sends traces of http get requests of a public URL. Use dotnet run to start the application.
You may want to open it first in Visual Studio 2022 or higher to ensure dependencies are installed first and then run from the Visual Studio 2022 console.
IIS / ASP.NET follows a different instruction path for instrumentation and is shown here: https://opentelemetry.io/docs/instrumentation/net/automatic/
"},{"location":"rum/","title":"Real User Metrics","text":""},{"location":"rum/#instructions","title":"Instructions","text":"
This example is for basic study only and is not documentation. Full documentation: https://coralogix.com/docs/ Requirements: - Intermediate to Advanced skill front-end development / Javascript - Proper IDE i.e. Visual Studio Code
Add Coralogix RUM integration Browser SDK and User Context and Labels to a new file called src/index.js
Set up node packages:
source 1-setup-node.sh\n
Run webpack to package the files in dist into a single dist/main.js file
source 2-webpack.sh\n
Edit this file and add your sourcemap key and region. This key is available in the RUM Integration->SourceMap setup
Run this command to upload sourcemap
source 3-sourcemap.sh\n
Run the app.js node app. This will run the node Express web server in the terminal- leave it running.
source 4-node.sh\n
Open a browser to http://localhost:3000 to load the app served by Node. Refresh a few times
Study RUM results in Coralogix
ctrl-c to stop Express server
Optional: source 5-cleanup.sh removes all Node packages and webpack artifacts
"}]}
\ No newline at end of file
+{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"Coralogix Workshops","text":"
These workshops are designed to help learn and practice observability and practice integrations to the Coralogix platform. They include reference implementations that are easy to deploy and study.
Unless otherwise specified, these are designed to run on an Ubuntu cloud host environment.
These workshops are not documentation- Coralogix documentation is located here
Coralogix uses open standard telemetry shippers and infrastructure/application metrics/traces/logs make use of OpenTelmetry OpenTelemetry Overview and Value Proposition
"},{"location":"#workshops","title":"Workshops","text":""},{"location":"#apm-microservices-and-opentelemetry-collector-configurations","title":"APM - Microservices and OpenTelemetry Collector Configurations","text":"
Kubernetes (Python) - Kubernetes OpenTelemetry Collector for metrics/traces/logs - OpenTelemetry tracing instrumentation for containerized Python and Java apps - Prometheus custom metrics collection - MySQL - Redis - Sample \"bad\" deployment and errors
These workshops are designed for advanced users such as devops, developers, and sysadmins to learn about OpenTelemetry and try it out with the Coralogix platform. They include easy-to-deploy examples and are meant to be conducted on an Ubuntu cloud environment, not on personal computers (unless otherwise specified).
Requirements for these workshops include:
Proficiency with an Integrated Development Environment (IDE) like Visual Studio Code; simple text editors like Notepad are not adequate, though VI can be used if set up as an IDE.
The computer should be set up as an integrated development environment (IDE).
An active Coralogix account and a basic understanding of its features.
Permissions to create resources like virtual machines and Kubernetes clusters in the cloud without restrictions.
Ability to set up virtual machines and Kubernetes clusters and all surrounding cloud infra necessary quickly before the workshop begins.
Direct internet access on the workshop computer, without needing a VPN.
Unrestricted access on computer and in cloud to GitHub, Helm, and the ability to use open source software.
Users should understand the programming languages being used (for example Python) if asking questions about OpenTelemetry for Python.
A unique Coralogix API Key should be ready for the workshop that will be discarded after.
The bulk of the workshop is designed for Kubernetes. If you have an existing Kubernetes cluster that can be used as a sandbox, you only need to make sure you have the following installed: - Helm - k9s
"},{"location":"prereqs/#if-you-do-not-have-a-kubernetes-sandbox-follow-the-instructions-below","title":"If you do not have a Kubernetes sandbox, follow the instructions below:","text":"
The following EC2 VM should be created, ready, and accessible before the workshop. It should be set up and already tested with access via your IDE with the software list below installed:
If that AMI is not available pick any Debian server AMI.
Install the following in advance of the workshop: - k3s - Helm - k9s
"},{"location":"otel/about-opentelemetry/","title":"Overview and Value Proposition","text":""},{"location":"otel/about-opentelemetry/#opentelemetry","title":"OpenTelemetry","text":"
OpenTelemetry is a standard organized by the Cloud Native Compute Foundation
The Cloud Native Compute Foundation publishes standards like Kubernetes and others that are the leading standards in the industry.
OpenTelemetry is comprised of two key elements: - A standard format for metrics, logs, and traces as well as standard protocols for shipping them - OpenTelemetry Software \u00a0\u00a0- OpenTelemetry Collector which can run anywhere (host/container/local) and receives, processes, and exports telemetry \u00a0\u00a0- OpenTelemetry Tracing Instrumentation for many languages that instruments your apps to emit traces and works in two ways \u00a0\u00a0\u00a0\u00a01. Automatic Instrumentation with no code changes and instruments a long list of frameworks for each language \u00a0\u00a0\u00a0\u00a02. Manual Instrumentation that is added to your code for fine grain trace span building
"},{"location":"otel/about-opentelemetry/#why-opentelemetry-because-observability-should-use-universal-standards","title":"Why OpenTelemetry? Because Observability Should Use Universal Standards","text":"
Observability means measuring a system based on its outputs.
This is contrast to installing proprietary software for monitoring/remediation purposes- if a system can simply emit telemetry natively, software is no longer needed.
In a complex environment consisting of servers, containers, cloud, many application languages, and mixes and variations of all of the above, Observability is required to be able to proactively and/or in real time discover and repair problems however sytems are so diverse that traditional post-problem find/fix monitoring solutions no longer function or are scalable.
Monitoring systems traditionally required negotiation with vendors to supply \"monitoring software\" and \"agents\" that are threaded througout an environment. This means annual negotiations are required to keep a business online because technical debt of vendor relationships has to be cured on a regular basis. As systems grow larger and more distributed and complex, the private vendor lock on monitoring creates a fatal reliability flaw in the tech stack.
No one negotiates for HTTP, SQL, HTTPS, TCP etc every year- so why should anyone negotiative for observability formats and agents? These should be based open standards and included as part of day-to-day system building and operations.
OpenTelemetry formats and tracing instrumentation allow for devops, operations, and development to scale infinitely without worry of vendor lock-in or future risk to an environment due to proprietary software.
"},{"location":"otel/ecs-ec2/","title":"OpenTelemetry for AWS ECS-EC2","text":""},{"location":"otel/ecs-ec2/#instructions","title":"Instructions","text":"
This example is for basic study only and is not documentation. Full documentation: https://coralogix.com/docs/ Requirements: - AWS Account - Intermediate to Advanced skill with ECS-EC2 - Sufficient permissions to configure AWS - Proper IDE i.e. Visual Studio Code
1 - Example ECS EC2 setup scripts to bring up and down an ECS cluster are included: ecs-cli-up.sh and ecs-cli-down.sh 2 - Identify Coralogix Distro for OpenTelemetry container version here before starting 3 - REQUIRED! Review all scripts and update variables IN CAPS 4 - Study official documentation here: https://github.com/coralogix/cloudformation-coralogix-aws/tree/master/opentelemetry/ecs-ec2
These two policies should be tuned for your own production security needs when going into production.
Deploy Coralogix Otel Collector stack in ECS EC2 Cluster
source 1-ecs-deploy-otel.sh\n
Deploy example Python application stack that will generate traces and logs
The template.yaml included in this repo from the source repo may change over time and if there are issues use the template.yaml from source repo instead.
source 2-ecs-createstack-autogen-otel.sh\n
"},{"location":"otel/ecs-ec2/#step-5-study-results-in-coralogix-portal","title":"Step 5 - Study results in Coralogix portal","text":""},{"location":"otel/ecs-ec2/#step-6-cleanup","title":"Step 6 - Cleanup","text":"
Delete Python application stack
source 3-ecs-deletestack-autogen-otel.sh \n
Delete Coralogix Otel Collector stack in ECS EC2 Cluster
source 4-ecs-deletestack-otel.sh\n
"},{"location":"otel/ecs-fargate/","title":"OpenTelemetry for AWS ECS-Fargate","text":""},{"location":"otel/ecs-fargate/#instructions","title":"Instructions","text":"
Complete the Microservices Workshop or install the OpenTelemetry Collector on your k8s cluster
Easy Coralogix instructions for Complete Observability are here
"},{"location":"otel/ecs-fargate/#step-2-change-to-workshop-dir","title":"Step 2 - Change to workshop dir","text":"
Change to the proper directory for workshop example:
cd ./workshops/workshops/otel/microservices\n
"},{"location":"otel/ecs-fargate/#step-3-deploy-the-example-mysql-database-deployment","title":"Step 3 - Deploy the example MySQL database deployment","text":"
In: mysql/mysqldsource deploy-mysqld.sh
"},{"location":"otel/ecs-fargate/#step-4-deploy-the-otel-collector-mysql-receiver","title":"Step 4 - Deploy the Otel Collector MySQL Receiver","text":"
In mysql/mysqlreceiversource deploy-override.sh
"},{"location":"otel/ecs-fargate/#step-5-deploy-the-otel-sql-query-receiver-example","title":"Step 5 - Deploy the Otel SQL Query receiver Example","text":"
In mysql/mysqlqueryreceiversource deploy-override.sh
"},{"location":"otel/ecs-fargate/#step-6-upload-dashboard-example-to-custom-dashboards","title":"Step 6 - Upload dashboard example to Custom Dashboards","text":"
Roll back to remove receivers: helm rollback otel-coralogix-integration 1 (or your proper previous version)
Delete the sample MySQL Database: In: mysql/mysqldsource delete-mysqld.sh
"},{"location":"otel/logparsing/logparsing/","title":"OpenTelemetry for Log Observability","text":""},{"location":"otel/logparsing/logparsing/#instructions","title":"Instructions","text":"
This example is for basic study only and is not documentation. Full documentation: https://coralogix.com/docs/ Requirements: - Coralogix Acccount - Cloud Linux host (Debian preferred but RPM flavors will work) - Updated versions and sufficient permissions for installing software - Proper IDE i.e. Visual Studio Code
"},{"location":"otel/logparsing/logparsing/#step-2-change-to-workshop-dir","title":"Step 2 - Change to workshop dir","text":"
Change to the proper directory for workshop example:
cd ./workshops/workshops/otel/logparsing/\n
"},{"location":"otel/logparsing/logparsing/#step-3-set-up-otel-collector-on-a-linux-host","title":"Step 3 - Set up Otel Collector on a Linux host","text":"
Download and install latest CONTRIB release version from here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases
Collector config.yaml must be configured with Coralogix Exporter. See the \"Send Data to Coralogix\" section for determining telemetry endpoint and and API key: https://coralogix.com/docs/guide-first-steps-coralogix/
See the config.yaml example in ./workshops/workshops/otel/logparsing/otelcol This file can be updated in /etc/otelcol/contrib/config.yaml - make a backup of the default version first.
Manage the collector using systemctl i.e. sudo systemctl restart otelcol More info is here: https://coralogix.com/docs/guide-first-steps-coralogix/
You can check Collector status with these status URLS: http://localhost:55679/debug/tracezhttp://localhost:55679/debug/pipelinez For more info: zpages docs
Requirements: - These prerequisites - A Kubernetes cluster i.e. EKS or GKE for a sandbox environment. If you cannot procure EKS or GKE See Appendix at the end of this page for a Kubernetes sandbox environment setup.
"},{"location":"otel/microservices/#step-1-install-the-opentelemetry-collector-on-your-k8s-cluster","title":"Step 1 - Install the OpenTelemetry Collector on your k8s cluster","text":"
Easy Coralogix instructions for Complete Observability are here
This deployment will cause severe sporadic problems in payment-gateway such as 500s and latency in the service response along with a drop in transaction volume. You can see the latency spikes here:
Alerts and automation can be built around span latency or Payment Gateway 500 responses.
Roll back the bad deployment for the services to return to normal:
source deploy-good.sh\n
Span latency will return to normal and Payment Gateway 500 responses will cease.
"},{"location":"otel/microservices/#step-6-study-how-opentelemetry-tracing-instrumentation-works","title":"Step 6 - Study how OpenTelemetry tracing instrumentation works","text":"
OpenTelemetry Instrumentation For Containerized Apps - Dockerfiles for the containers contain OpenTelemetry auto instrumentation for Python and are in /python root level - Study Otel Python Auto Instrumentation - Notice how the Dockerfile adds the automatic instrumentation - And observe how the kickstart script uses the instrumenting command
Kubernetes Deployments for Otel Tracing Instrumentation - .yaml deployment files are in python/yaml and show how environment variables are used to control the instrumentation - study the deploy-all.yaml which shows the environment variables that control OpenTelemetry tracing instrumentation. Focus on how the Kubernetes Downward API use of status.hostIP to tell the instrumentation where to send traces: to the IP adddress of the host node on port 4317 - this is the default GRPC endpoint for OTLP trace spans
Instrumented Applications and Frameworks - The Python apps that drive this example are in the python/apps dir - Examine the frameworks used to show how tracing picks up their execution - Note that the python requests library is used to make http requests, and that OpenTelemetry Python Instrumentation lists requests as an automatically instrumented library
"},{"location":"otel/microservices/#opentelemetry-collector-configs-for-microservices","title":"OpenTelemetry Collector Configs for Microservices","text":"
Prometheus
To study Prometheus metrics, deploy the Promteheus example metric generators. From directory level of the workshops repo:
cd /workshops/workshops/otel/microservices/prometheus\nsource deploy-prom-app.sh \n
Now two deployments appear each generating random number gauges with metric names: prom1 and prom2
We will look at two examples of collecting Prometheus metrics: - Prometheus Simple (docs here) declares explicit targts for scraping metrics - Study the override file called override-prometheus-simple.yaml to understand how it works - Update the Cluster name and Domain to match your stack and deploy: source deploy-prom-simple.sh - You can now see metrics in Coralogix portal called prom1 and prom2 - To restore original OpenTelemetry Collector config: helm rollback otel-coralogix-integration 1 - Prometheus Autodiscovery (docs here) uses various features of OpenTelmetry collector to create an autodiscovery set of receivers based on watching for changes in deployments. This will find all self declared Prometheus endpoints in deployments. - Study the override file called override-prometheus-auto.yaml to understand how it works - Update the Cluster name and Domain to match your stack and deploy: source deploy-prom-auto.sh - You can now see metrics in Coralogix portal called prom1 and prom2 - To restore original OpenTelemetry Collector config: helm rollback otel-coralogix-integration 1 - To delete the Prometheus metrics deployment:
AWS EC2 t2.2xl VM with 24GB of storage w/ Ubuntu Linux or equivalent other cloud provider
A quick k8s platform is k3s minimal Dockerless Kubernetes- use script top right of homepage: https://k3s.io/
Every time you open a new shell, to use k3s for helm, kubectl, etc you must set the appropriate env variable: sudo chmod 644 /etc/rancher/k3s/k3s.yaml && export KUBECONFIG=/etc/rancher/k3s/k3s.yaml This script is included in the workshop in the k3s folder: source ./k3s/k3s.sh
Install helm- use bash script: https://helm.sh/docs/intro/install/
Download appropriate release and gunzip / tar -xf the release https://github.com/derailed/k9s/releases
"},{"location":"otel/monolith/node/","title":"OpenTelemetry for Node.js / Monolith","text":""},{"location":"otel/monolith/node/#instructions","title":"Instructions","text":"
This example is for basic study only and is not documentation. Full documentation: https://coralogix.com/docs/ Requirements: - Coralogix acccount - Cloud Linux host (Debian is preferred- workshop instructions are for Debian Linux but if RPM is preferred instructions can be modified) - Updated versions and sufficient permissions for installing open source software - Current verson of node and npm installed https://nodejs.org/ - Ensure that the Node version is current (20 or higher). See https://deb.nodesource.com/ for Ubuntu installation instructions - Proper IDE i.e. Visual Studio Code
"},{"location":"otel/monolith/node/#step-2-change-to-workshop-dir","title":"Step 2 - Change to workshop dir","text":"
Change to the proper directory for workshop example:
cd ./workshops/workshops/otel/monolith-workshop/node/\n
"},{"location":"otel/monolith/node/#step-3-set-up-otel-collector-on-a-linux-host","title":"Step 3 - Set up Otel Collector on a Linux host","text":"
Download and install latest CONTRIB release version from here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases
Collector config.yaml must be configured with Coralogix Exporter. See the \"Send Data to Coralogix\" section for determining telemetry endpoint and and API key: https://coralogix.com/docs/guide-first-steps-coralogix/
See the config.yaml example in ./workshops/workshops/otel/monolith-workshop/node/otelcol This file can be updated in /etc/otelcol/contrib/config.yaml - make a backup of the default version first.
Manage the collector using systemctl i.e. sudo systemctl restart otelcol More info is here: https://coralogix.com/docs/guide-first-steps-coralogix/
You can check Collector status with these status URLS: http://localhost:55679/debug/tracezhttp://localhost:55679/debug/pipelinez For more info: zpages docs
"},{"location":"otel/monolith/node/#step-4-run-node-client-in-new-terminal","title":"Step 4 - Run Node client in new terminal","text":"
Demo app will make requests of https://api.github.com and require `ctrl-c`` to exit.
in ./workshops/workshops/otel/monolith-workshop/node/
Install node.js OpenTelemetry Instrumentation:
setup-node.sh\n
Setup environment variables for OpenTelemetry:
setup-node-env.sh\n
Start demo app:
start-node.sh\n
Stop app with ctrl-c when ready.
"},{"location":"otel/monolith/node/#step-5-study-results-in-coralogix-portal","title":"Step 5 - Study results in Coralogix portal","text":"
The shell scripts show how a monolith is set up and instrumented for OpenTelemetry. Traces can be found in Explore->Tracing Additionally, host metrics are available via Coralogix's metrics observability tools.
"},{"location":"otel/monolith/python/","title":"OpenTelemetry for Python / Monolith","text":""},{"location":"otel/monolith/python/#instructions","title":"Instructions","text":"
This example is for basic study only and is not documentation. Full documentation: https://coralogix.com/docs/ Requirements: - Coralogix acccount - Cloud Linux host (Debian is preferred- workshop instructions are for Debian Linux but if RPM is preferred instructions can be modified) - Current versions and sufficient permissions for installing open source software - Current versons (>3.10) of python and pip installed - Proper IDE i.e. Visual Studio Code
"},{"location":"otel/monolith/python/#step-2-change-to-workshop-dir","title":"Step 2 - Change to workshop dir","text":"
Change to the proper directory for workshop example:
cd ./workshops/workshops/otel/monolith-workshop/python/\n
"},{"location":"otel/monolith/python/#step-3-set-up-otel-collector-on-a-linux-host","title":"Step 3 - Set up Otel Collector on a Linux host","text":"
Download and install latest CONTRIB release version from here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases
Collector config.yaml must be configured with Coralogix Exporter. See the \"Send Data to Coralogix\" section for determining telemetry endpoint and and API key: https://coralogix.com/docs/guide-first-steps-coralogix/
See the config.yaml example in ./workshops/workshops/otel/monolith-workshop/ and configure this for your system / Coralogix account. This file can be updated in /etc/otelcol-contrib/config.yaml - make a backup of the default version first.
Manage the collector using systemctl i.e. sudo systemctl restart otelcol-contrib.service More info is here: https://coralogix.com/docs/guide-first-steps-coralogix/
You can check Collector status with these status URLS: http://localhost:55679/debug/tracezhttp://localhost:55679/debug/pipelinez For more info: zpages docs
"},{"location":"otel/monolith/python/#step-4-run-python-app","title":"Step 4 - Run Python App","text":""},{"location":"otel/monolith/python/#pre-requisites","title":"Pre-requisites","text":"
For ubuntu Run sudo apt upgrade to upgrde already installed packages. If you receive a message to reboot your server do so before moving on to the next steps.
Run python3 --version to check you have python3 installed. If not follow the python3 installation document for your linux distribution. For ubuntu follow
Ensure python venv is installed
Run pip3 --version to check pip3 is installed. If not follow the pip3 installation documentation for your linux distribution. For ubuntu use command sudo apt-get install python3-pip
Note: Running source setup-python.sh would output long list of packages and with messages like Successfully installed opentelemetry-instrumentation-some-package. To exit the running app, use ctrl-c and you will be in the venv shell- exit with deactivate
"},{"location":"otel/monolith/python/#step-5-study-results-in-coralogix-portal","title":"Step 5 - Study results in Coralogix portal","text":"
Logs with span/trace IDs, and a complete client/server service will be available.
"},{"location":"otel/monolith/windows/","title":"OpenTelemetry for .NET / Monolith","text":""},{"location":"otel/monolith/windows/#instructions","title":"Instructions","text":"
This example is for basic study only and is not documentation. Full documentation: https://coralogix.com/docs/ Requirements: - Windows Server 2019 or newer - Updated versions and sufficient permissions for downloading and installing software and no restrictions on GitHub domain - .NET Framework 3.5 or greater installed - PowerShell 5.1 or higher - Proper IDE i.e. Visual Studio Code
"},{"location":"otel/monolith/windows/#about-opentelemetry-for-net","title":"About OpenTelemetry For .NET","text":"
You can find the complete instruction for .NET OpenTelemetry Agent Instrumentation is in .NET OpenTelemetry GitHub Repository.
There are three key steps to sending traces from a .NET application on Windows: - Install the OpenTelemetry collector - Install OpenTelemetry .NET instrumentation - Run a sample .NET application to test traces
Download and install latest CONTRIB release version from here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases
Use the following example from this repo a template for the OTEL collector config: /workshops/workshops/otel/monolith-workshop/dotnet-windows/otelcol/config.yaml
In config.yaml adjust the domains and your Coralogix private key shown in the snippet below. Also define your application & subsystem name tags.
#config.yaml\n\nexporters:\n logging:\n verbosity: detailed\n coralogix:\n # The Coralogix traces ingress endpoint\n traces:\n endpoint: \"YOURDOMAINHERE i.e. ingress.coralogix.us:443\"\n metrics:\n endpoint: \"YOURDOMAINHERE i.e. ingress.coralogix.us:443\"\n logs:\n endpoint: \"YOURDOMAINHERE i.e. ingress.coralogix.us:443\"\n\n # Your Coralogix private key is sensitive\n private_key: \"YOURKEYHERE\"\n\n...\n\n # Traces, Metrics and Logs emitted by this OpenTelemetry exporter \n # are tagged in Coralogix with the default application and subsystem constants.\n application_name: \"MyBusinessEnvironment\"\n subsystem_name: \"MyBusinessSystem\"\n
The official Otel instrumentation guide shows the following: Run the commands below in your PowerShell. Update the \"MyServiceDisplayName\" with the name of your application.
# Download the module\n$module_url = \"https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation/releases/latest/download/OpenTelemetry.DotNet.Auto.psm1\"\n$download_path = Join-Path $env:temp \"OpenTelemetry.DotNet.Auto.psm1\"\nInvoke-WebRequest -Uri $module_url -OutFile $download_path -UseBasicParsing\n\n# Import the module to use its functions\nImport-Module $download_path\n\n# Install core files\nInstall-OpenTelemetryCore\n\n# Set up the instrumentation for the current PowerShell session\nRegister-OpenTelemetryForCurrentSession -OTelServiceName \"MyServiceDisplayName\"\n
Next, configure the follwing Environment Variables
"},{"location":"otel/monolith/windows/#step-4-example-application","title":"Step 4 - Example Application","text":"
You can download & instrument the example application: ./workshops/workshops/otel/monolith-workshop/dotnet-windows/ExampleApp/ provided in this repository for testing.
The example sends traces of http get requests of a public URL. Use dotnet run to start the application.
You may want to open it first in Visual Studio 2022 or higher to ensure dependencies are installed first and then run from the Visual Studio 2022 console.
1 - Put the following file in an S3 bucket: https://github.com/coralogix/telemetry-shippers/blob/master/logs/fluent-bit/ecs-fargate/base_filters.conf
2 - Put the following in a Systems Manager Parameter Store: https://github.com/coralogix/telemetry-shippers/blob/master/otel-ecs-fargate/config.yaml
3 - Create a role called ecsTaskExecutionRole that contains the AWS managed AmazonECSTaskExecutionRolePolicy and two example policies from this workshop: ecs-policy-s3-access.jsonecs-policy-secrets-access.json
These two policies should be tuned for your own production security needs when going into production.
Update all 14 locations replacing contents bewteen < > and removing those brackets but leaving the quotes: adding task execution role, key, domain, S3 ARN, Systems Parameter etc...
Once prepped the task can be registered and made into a service.
The task creates the following containers: - two microservices (Client/Server) - FireLens log router - Otel collector
The microservice containers create a Python HTTP client and server that will generate spans and logs and send to Coralogix.
"},{"location":"otel/mysql/#step-6-study-results-in-coralogix-portal","title":"Step 6 - Study results in Coralogix portal","text":"
The shell scripts show how a the microservices example.
"},{"location":"rum/","title":"Real User Metrics","text":""},{"location":"rum/#instructions","title":"Instructions","text":"
This example is for basic study only and is not documentation. Full documentation: https://coralogix.com/docs/ Requirements: - Intermediate to Advanced skill front-end development / Javascript - Proper IDE i.e. Visual Studio Code