diff --git a/otel/ecs-ec2/index.html b/otel/ecs-ec2/index.html index 83170f7b..0da46fac 100644 --- a/otel/ecs-ec2/index.html +++ b/otel/ecs-ec2/index.html @@ -547,7 +547,7 @@
  • - Step 3 - Prep Requirements + Step 3 - Prep requirements @@ -556,7 +556,7 @@
  • - Step 4 - Execute Workshop + Step 4 - Execute workshop @@ -720,13 +720,13 @@

    Step 2 - Change to workshop dir

    Change to the proper directory for workshop example:

    cd ./workshops/workshops/otel/ecs-ec2
     
    -

    Step 3 - Prep Requirements

    +

    Step 3 - Prep requirements

    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.

    -

    Step 4 - Execute Workshop

    +

    These two policies should be tuned for your own production security needs when going into production.

    +

    Step 4 - Execute workshop

    diff --git a/search/search_index.json b/search/search_index.json index c6a48bfd..6cd85014 100644 --- a/search/search_index.json +++ b/search/search_index.json @@ -1 +1 @@ -{"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 understand.

    Unless otherwise specified, these are designed to run on an Ubuntu cloud host environment. They are not intended to be run on a personal computer. Specific workshops have sandbox setup guidelines beyond a cloud Ubuntu host.

    These workshops are not documentation- Coralogix platform documentation is located here

    "},{"location":"#opentelemetry-info","title":"OpenTelemetry Info","text":"

    OpenTelemetry Overview and Value Proposition

    "},{"location":"#workshops","title":"Workshops","text":""},{"location":"#apm-microservices","title":"APM - Microservices","text":"

    Kubernetes (Python, Java) - Kubernetes OpenTelemetry Collector for metrics/traces/logs - OpenTelemetry tracing instrumentation for containerized Python and Java apps - Prometheus custom metrics collection - Sample \"bad\" deployment and errors

    AWS ECS Fargate (Python) - 2x container microservice, OpenTelemetry Collector, Firelens log router - Complete Fargate task and ECS config instructions

    AWS ECS EC2 (Python)

    "},{"location":"#apm-monolith","title":"APM - Monolith","text":"

    Monolith Otel Collector & Host based applications - Python / Linux - Node / Linux - .NET / Windows

    "},{"location":"#real-user-monitoring-rum","title":"Real User Monitoring (RUM)","text":""},{"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

    "},{"location":"otel/ecs-ec2/#step-1-setup","title":"Step 1 - Setup","text":"

    Clone repo:

    git clone https://github.com/coralogix/workshops\n
    "},{"location":"otel/ecs-ec2/#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/ecs-ec2\n
    "},{"location":"otel/ecs-ec2/#step-3-prep-requirements","title":"Step 3 - Prep Requirements","text":"

    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.

    "},{"location":"otel/ecs-ec2/#step-4-execute-workshop","title":"Step 4 - Execute Workshop","text":"
    source 1-ecs-deploy-otel.sh\n
    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":"
    source 3-ecs-deletestack-autogen-otel.sh  \n
    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

    "},{"location":"otel/ecs-fargate/#step-1-setup","title":"Step 1 - Setup","text":"

    Clone repo:

    git clone https://github.com/coralogix/workshops\n
    "},{"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/ecs-fargate\n
    "},{"location":"otel/ecs-fargate/#step-3-prep-requirements","title":"Step 3: Prep Requirements","text":"

    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.

    "},{"location":"otel/ecs-fargate/#step-4-prep-register-task","title":"Step 4: Prep / Register Task","text":"

    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.

    "},{"location":"otel/ecs-fargate/#step-5-launch-task","title":"Step 5: Launch Task","text":"

    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.

    "},{"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-1-setup","title":"Step 1 - Setup","text":"

    Clone repo:

    git clone https://github.com/coralogix/workshops\n
    "},{"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/tracez http://localhost:55679/debug/pipelinez For more info: zpages docs

    "},{"location":"otel/logparsing/logparsing/#step-4-prepare-log-example","title":"Step 4 - Prepare Log Example","text":""},{"location":"otel/logparsing/logparsing/#step-5-update-collector-with-log-receiver","title":"Step 5 - Update Collector with Log Receiver","text":"
    receivers:\n  filelog:\n    include: [ /tmp/cx/LOG.log ]\n
    service:  \n  pipelines:\n    logs:\n      receivers: [otlp, filelog]\n
    sudo systemctl restart otelcol-contrib.service \n
    sudo systemctl status otelcol-contrib.service \n
    "},{"location":"otel/logparsing/logparsing/#step-5-study-logs-in-coralogix","title":"Step 5 - Study Logs in Coralogix","text":"

    The Explore->Logs option now will show the integrated logs.

    "},{"location":"otel/microservices-workshop/","title":"OpenTelemetry Microservices / Kubernetes","text":""},{"location":"otel/microservices-workshop/#instructions","title":"Instructions","text":"

    This example is for basic study only and is not documentation. Full documentation: https://coralogix.com/docs/ Requirements: - Coralogix acccount - Kubernetes cluster that can be used as a sandbox environment. See Appendix below for a suggested Kubernetes sandbox environment with a quick and easy setup. This setup is recommended for this workshop. - Updated versions and sufficient skill and permissions for helm and kubectl and open source software in general - Proper IDE i.e. Visual Studio Code

    "},{"location":"otel/microservices-workshop/#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

    "},{"location":"otel/microservices-workshop/#step-2-setup","title":"Step 2 - Setup","text":"

    Clone repo:

    git clone https://github.com/coralogix/workshops\n
    "},{"location":"otel/microservices-workshop/#step-3-change-to-workshop-dir","title":"Step 3 - Change to workshop dir","text":"

    Change to the proper directory for workshop example:

    cd workshops/workshops/otel/microservices-demo\n
    "},{"location":"otel/microservices-workshop/#step-4-deploy-example","title":"Step 4 - Deploy example","text":"

    Deploy example to your k8s cluster- this will deploy to the default k8s namespace. If you want to change the namespace, edit yaml/deploy-good.yaml There will be three services spun up:

    source deploy-all.sh\n

    Deploys the following as seen from the http://cx-payment-gateway-flask:5000/ root span:

    Note: images may vary from actual UI due to frequent updates:

    With healthy low latency spans for all services:

    "},{"location":"otel/microservices-workshop/#step-5-simulate-cicd-scenarios","title":"Step 5 - Simulate CI/CD scenarios","text":"

    Study results in Coralogix portal

    Simulate a \"bad\" deployment:

    source deploy-reqs-bad.sh\n

    This deployment will cause severe sporadic problems in payment-gateway such as 404s, a log key:value 'transaction': 'failed', 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 404 responses.

    Roll back the bad deployment for the services to return to normal:

    source deploy-reqs-good.sh\n

    Span latency will return to normal and Payment Gateway 404 responses will cease.

    "},{"location":"otel/microservices-workshop/#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-good.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

    Instrumented Applications and Frameworks - The Python apps that drive this example are in the python/apps dir - Examine the frameworks used so you can see 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-workshop/#bonus-examples","title":"Bonus Examples","text":"

    Deploy Java based Inventory service:

    source deploy-java.sh\n

    Deploy Node.js self contained trace generator- makes requests to a URL specified in environment variables:

    source deploy-node-autogen.sh\n
    "},{"location":"otel/microservices-workshop/#cleanup","title":"Cleanup","text":"

    To remove all the deployments/services/pods from the example from your k8s cluster (ignore any errors it reports):

    source delete-all.sh\n
    "},{"location":"otel/microservices-workshop/#appendix-quick-kubernetes-sandbox-setup","title":"Appendix - Quick Kubernetes Sandbox Setup","text":""},{"location":"otel/monolith-workshop/node/","title":"OpenTelemetry for Node.js / Monolith","text":""},{"location":"otel/monolith-workshop/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-workshop/node/#step-1-setup","title":"Step 1 - Setup","text":"

    Clone repo:

    git clone https://github.com/coralogix/workshops\n
    "},{"location":"otel/monolith-workshop/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-workshop/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/tracez http://localhost:55679/debug/pipelinez For more info: zpages docs

    "},{"location":"otel/monolith-workshop/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-workshop/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-workshop/python/","title":"OpenTelemetry for Python / Monolith","text":""},{"location":"otel/monolith-workshop/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-workshop/python/#step-1-setup","title":"Step 1 - Setup","text":"

    Clone repo:

    git clone https://github.com/coralogix/workshops\n
    "},{"location":"otel/monolith-workshop/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-workshop/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/python/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/tracez http://localhost:55679/debug/pipelinez For more info: zpages docs

    "},{"location":"otel/monolith-workshop/python/#step-4-run-python-client-in-new-terminal","title":"Step 4 - Run Python client in new terminal","text":""},{"location":"otel/monolith-workshop/python/#pre-requisite-to-run-a-python-app","title":"Pre-requisite to Run a Python App","text":""},{"location":"otel/monolith-workshop/python/#run-python-app","title":"Run Python App","text":"

    This application make 100 requests to https://reqbin.com/echo/get/json and then exit.

    Run following scripts found under ./python:

    source setup-python.sh\nsource setup-python-env.sh\nsource start-python.sh\n

    Note: Running source setup-python.sh would output long list of packages and with messages like Successfully installed opentelemetry-instrumentation-some-package.

    "},{"location":"otel/monolith-workshop/python/#step-5-study-results-in-coralogix-portal","title":"Step 5 - Study results in Coralogix portal","text":"

    Explore >> Logs UI Explore >> Tracing UI Individual Trace Setup Correlation (logs in-context) Logs In-context ```

    "},{"location":"otel/monolith-workshop/windows/","title":"OpenTelemetry for .NET / Monolith","text":""},{"location":"otel/monolith-workshop/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-workshop/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

    "},{"location":"otel/monolith-workshop/windows/#step-1-setup","title":"Step 1 - Setup","text":"

    Clone repo:

    git clone https://github.com/coralogix/workshops\n
    "},{"location":"otel/monolith-workshop/windows/#step-2-otel-collector-installation","title":"Step 2 - OTEL Collector Installation","text":"

    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.

    References: - Coralogix Endpoints - Coralogix Private Key - Application & Subsystem Names

    #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

    Next: run the collector using the command

    otelcol-contrib.exe --config=config.yaml\n
    "},{"location":"otel/monolith-workshop/windows/#step-3-install-net-instrumentation","title":"Step 3 - Install .NET Instrumentation","text":"

    You can find the complete instructions for .NET OpenTelemetry Agent Instrumentation is in .NET OpenTelemetry GitHub Repository.

    Below is a shortcut set of instructions but these may be updated in the official documentation above, so we recommend following the officical set.

    "},{"location":"otel/monolith-workshop/windows/#quick-start","title":"Quick start","text":"

    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

    $env:OTEL_RESOURCE_ATTRIBUTES='service.name=dotnetsvc,application.name=dotnetapp cx.application.name=dotnetappcx,cx.subsystem.name=dotnetsubcx'\n$env:OTEL_EXPORTER_OTLP_TRACES_ENDPOINT='localhost:4317'\n$env:OTEL_EXPORTER_OTLP_TRACES_PROTOCOL='grpc'\n

    Finally, run your dotnet application with

    dotnet run\n
    "},{"location":"otel/monolith-workshop/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.

    "},{"location":"otel/monolith-workshop/windows/#aspnet","title":"ASP.NET","text":"

    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

    "},{"location":"rum/#step-1-setup","title":"Step 1 - Setup","text":"

    Clone repo:

    git clone https://github.com/coralogix/workshops\n
    "},{"location":"rum/#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/rum\n
    "},{"location":"rum/#step-3-execute-workshop","title":"Step 3 - Execute workshop","text":"
    source 1-setup-node.sh\n
    source 2-webpack.sh\n
    source 3-sourcemap.sh\n
    source 4-node.sh\n
    "}]} \ 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 understand.

    Unless otherwise specified, these are designed to run on an Ubuntu cloud host environment. They are not intended to be run on a personal computer. Specific workshops have sandbox setup guidelines beyond a cloud Ubuntu host.

    These workshops are not documentation- Coralogix platform documentation is located here

    "},{"location":"#opentelemetry-info","title":"OpenTelemetry Info","text":"

    OpenTelemetry Overview and Value Proposition

    "},{"location":"#workshops","title":"Workshops","text":""},{"location":"#apm-microservices","title":"APM - Microservices","text":"

    Kubernetes (Python, Java) - Kubernetes OpenTelemetry Collector for metrics/traces/logs - OpenTelemetry tracing instrumentation for containerized Python and Java apps - Prometheus custom metrics collection - Sample \"bad\" deployment and errors

    AWS ECS Fargate (Python) - 2x container microservice, OpenTelemetry Collector, Firelens log router - Complete Fargate task and ECS config instructions

    AWS ECS EC2 (Python)

    "},{"location":"#apm-monolith","title":"APM - Monolith","text":"

    Monolith Otel Collector & Host based applications - Python / Linux - Node / Linux - .NET / Windows

    "},{"location":"#real-user-monitoring-rum","title":"Real User Monitoring (RUM)","text":""},{"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

    "},{"location":"otel/ecs-ec2/#step-1-setup","title":"Step 1 - Setup","text":"

    Clone repo:

    git clone https://github.com/coralogix/workshops\n
    "},{"location":"otel/ecs-ec2/#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/ecs-ec2\n
    "},{"location":"otel/ecs-ec2/#step-3-prep-requirements","title":"Step 3 - Prep requirements","text":"

    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.

    "},{"location":"otel/ecs-ec2/#step-4-execute-workshop","title":"Step 4 - Execute workshop","text":"
    source 1-ecs-deploy-otel.sh\n
    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":"
    source 3-ecs-deletestack-autogen-otel.sh  \n
    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

    "},{"location":"otel/ecs-fargate/#step-1-setup","title":"Step 1 - Setup","text":"

    Clone repo:

    git clone https://github.com/coralogix/workshops\n
    "},{"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/ecs-fargate\n
    "},{"location":"otel/ecs-fargate/#step-3-prep-requirements","title":"Step 3: Prep Requirements","text":"

    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.

    "},{"location":"otel/ecs-fargate/#step-4-prep-register-task","title":"Step 4: Prep / Register Task","text":"

    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.

    "},{"location":"otel/ecs-fargate/#step-5-launch-task","title":"Step 5: Launch Task","text":"

    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.

    "},{"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-1-setup","title":"Step 1 - Setup","text":"

    Clone repo:

    git clone https://github.com/coralogix/workshops\n
    "},{"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/tracez http://localhost:55679/debug/pipelinez For more info: zpages docs

    "},{"location":"otel/logparsing/logparsing/#step-4-prepare-log-example","title":"Step 4 - Prepare Log Example","text":""},{"location":"otel/logparsing/logparsing/#step-5-update-collector-with-log-receiver","title":"Step 5 - Update Collector with Log Receiver","text":"
    receivers:\n  filelog:\n    include: [ /tmp/cx/LOG.log ]\n
    service:  \n  pipelines:\n    logs:\n      receivers: [otlp, filelog]\n
    sudo systemctl restart otelcol-contrib.service \n
    sudo systemctl status otelcol-contrib.service \n
    "},{"location":"otel/logparsing/logparsing/#step-5-study-logs-in-coralogix","title":"Step 5 - Study Logs in Coralogix","text":"

    The Explore->Logs option now will show the integrated logs.

    "},{"location":"otel/microservices-workshop/","title":"OpenTelemetry Microservices / Kubernetes","text":""},{"location":"otel/microservices-workshop/#instructions","title":"Instructions","text":"

    This example is for basic study only and is not documentation. Full documentation: https://coralogix.com/docs/ Requirements: - Coralogix acccount - Kubernetes cluster that can be used as a sandbox environment. See Appendix below for a suggested Kubernetes sandbox environment with a quick and easy setup. This setup is recommended for this workshop. - Updated versions and sufficient skill and permissions for helm and kubectl and open source software in general - Proper IDE i.e. Visual Studio Code

    "},{"location":"otel/microservices-workshop/#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

    "},{"location":"otel/microservices-workshop/#step-2-setup","title":"Step 2 - Setup","text":"

    Clone repo:

    git clone https://github.com/coralogix/workshops\n
    "},{"location":"otel/microservices-workshop/#step-3-change-to-workshop-dir","title":"Step 3 - Change to workshop dir","text":"

    Change to the proper directory for workshop example:

    cd workshops/workshops/otel/microservices-demo\n
    "},{"location":"otel/microservices-workshop/#step-4-deploy-example","title":"Step 4 - Deploy example","text":"

    Deploy example to your k8s cluster- this will deploy to the default k8s namespace. If you want to change the namespace, edit yaml/deploy-good.yaml There will be three services spun up:

    source deploy-all.sh\n

    Deploys the following as seen from the http://cx-payment-gateway-flask:5000/ root span:

    Note: images may vary from actual UI due to frequent updates:

    With healthy low latency spans for all services:

    "},{"location":"otel/microservices-workshop/#step-5-simulate-cicd-scenarios","title":"Step 5 - Simulate CI/CD scenarios","text":"

    Study results in Coralogix portal

    Simulate a \"bad\" deployment:

    source deploy-reqs-bad.sh\n

    This deployment will cause severe sporadic problems in payment-gateway such as 404s, a log key:value 'transaction': 'failed', 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 404 responses.

    Roll back the bad deployment for the services to return to normal:

    source deploy-reqs-good.sh\n

    Span latency will return to normal and Payment Gateway 404 responses will cease.

    "},{"location":"otel/microservices-workshop/#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-good.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

    Instrumented Applications and Frameworks - The Python apps that drive this example are in the python/apps dir - Examine the frameworks used so you can see 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-workshop/#bonus-examples","title":"Bonus Examples","text":"

    Deploy Java based Inventory service:

    source deploy-java.sh\n

    Deploy Node.js self contained trace generator- makes requests to a URL specified in environment variables:

    source deploy-node-autogen.sh\n
    "},{"location":"otel/microservices-workshop/#cleanup","title":"Cleanup","text":"

    To remove all the deployments/services/pods from the example from your k8s cluster (ignore any errors it reports):

    source delete-all.sh\n
    "},{"location":"otel/microservices-workshop/#appendix-quick-kubernetes-sandbox-setup","title":"Appendix - Quick Kubernetes Sandbox Setup","text":""},{"location":"otel/monolith-workshop/node/","title":"OpenTelemetry for Node.js / Monolith","text":""},{"location":"otel/monolith-workshop/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-workshop/node/#step-1-setup","title":"Step 1 - Setup","text":"

    Clone repo:

    git clone https://github.com/coralogix/workshops\n
    "},{"location":"otel/monolith-workshop/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-workshop/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/tracez http://localhost:55679/debug/pipelinez For more info: zpages docs

    "},{"location":"otel/monolith-workshop/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-workshop/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-workshop/python/","title":"OpenTelemetry for Python / Monolith","text":""},{"location":"otel/monolith-workshop/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-workshop/python/#step-1-setup","title":"Step 1 - Setup","text":"

    Clone repo:

    git clone https://github.com/coralogix/workshops\n
    "},{"location":"otel/monolith-workshop/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-workshop/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/python/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/tracez http://localhost:55679/debug/pipelinez For more info: zpages docs

    "},{"location":"otel/monolith-workshop/python/#step-4-run-python-client-in-new-terminal","title":"Step 4 - Run Python client in new terminal","text":""},{"location":"otel/monolith-workshop/python/#pre-requisite-to-run-a-python-app","title":"Pre-requisite to Run a Python App","text":""},{"location":"otel/monolith-workshop/python/#run-python-app","title":"Run Python App","text":"

    This application make 100 requests to https://reqbin.com/echo/get/json and then exit.

    Run following scripts found under ./python:

    source setup-python.sh\nsource setup-python-env.sh\nsource start-python.sh\n

    Note: Running source setup-python.sh would output long list of packages and with messages like Successfully installed opentelemetry-instrumentation-some-package.

    "},{"location":"otel/monolith-workshop/python/#step-5-study-results-in-coralogix-portal","title":"Step 5 - Study results in Coralogix portal","text":"

    Explore >> Logs UI Explore >> Tracing UI Individual Trace Setup Correlation (logs in-context) Logs In-context ```

    "},{"location":"otel/monolith-workshop/windows/","title":"OpenTelemetry for .NET / Monolith","text":""},{"location":"otel/monolith-workshop/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-workshop/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

    "},{"location":"otel/monolith-workshop/windows/#step-1-setup","title":"Step 1 - Setup","text":"

    Clone repo:

    git clone https://github.com/coralogix/workshops\n
    "},{"location":"otel/monolith-workshop/windows/#step-2-otel-collector-installation","title":"Step 2 - OTEL Collector Installation","text":"

    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.

    References: - Coralogix Endpoints - Coralogix Private Key - Application & Subsystem Names

    #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

    Next: run the collector using the command

    otelcol-contrib.exe --config=config.yaml\n
    "},{"location":"otel/monolith-workshop/windows/#step-3-install-net-instrumentation","title":"Step 3 - Install .NET Instrumentation","text":"

    You can find the complete instructions for .NET OpenTelemetry Agent Instrumentation is in .NET OpenTelemetry GitHub Repository.

    Below is a shortcut set of instructions but these may be updated in the official documentation above, so we recommend following the officical set.

    "},{"location":"otel/monolith-workshop/windows/#quick-start","title":"Quick start","text":"

    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

    $env:OTEL_RESOURCE_ATTRIBUTES='service.name=dotnetsvc,application.name=dotnetapp cx.application.name=dotnetappcx,cx.subsystem.name=dotnetsubcx'\n$env:OTEL_EXPORTER_OTLP_TRACES_ENDPOINT='localhost:4317'\n$env:OTEL_EXPORTER_OTLP_TRACES_PROTOCOL='grpc'\n

    Finally, run your dotnet application with

    dotnet run\n
    "},{"location":"otel/monolith-workshop/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.

    "},{"location":"otel/monolith-workshop/windows/#aspnet","title":"ASP.NET","text":"

    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

    "},{"location":"rum/#step-1-setup","title":"Step 1 - Setup","text":"

    Clone repo:

    git clone https://github.com/coralogix/workshops\n
    "},{"location":"rum/#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/rum\n
    "},{"location":"rum/#step-3-execute-workshop","title":"Step 3 - Execute workshop","text":"
    source 1-setup-node.sh\n
    source 2-webpack.sh\n
    source 3-sourcemap.sh\n
    source 4-node.sh\n
    "}]} \ No newline at end of file diff --git a/sitemap.xml.gz b/sitemap.xml.gz index 3d109dbb..f56ee8d8 100644 Binary files a/sitemap.xml.gz and b/sitemap.xml.gz differ