The Test and Step tab displays each scripted browser check recorded in the form of Steps. This tab is available for Synthetic resources on the Resources page. Each Test is treated as an individual device, and each Test consists of multiple Steps that represent the different operations of your website. This helps you to navigate through all of your website’s operations easily.

The Test and Steps tab displays the test data using the following visual components:

Test and Steps Tab

Test and Step Graph

A unique colored graph represents each Step. This allows you to compare the different operations for your website.

Test and Steps Graph

Test and Step Table

The runtime data is elaborated for each Step. Additionally, you can filter the table based on Status Code. For example, when you select 23(Command timeout), the table displays only the information with that status code. The fields in the table are detailed below:

Field Description
Test Start (date and time) Displays the starting time and date of the Test.
Test Results Displays the Test results for the different Test Start times. The different results are as follows:
  • Cleared
  • Critical
  • Warning
  • Error
Alerts Triggered Displays the total number of alerts triggered for that Test.
Status Code Displays the status code of the test. For example, the status code “0” indicates “Success”.
Code Details Displays the status code details. For example, the status code “10” indicates code details “Test Skipped”.
Latency (s) Displays the time period from initiating a request to getting a response.

Viewing Step Details

You can select a Test from the Test and Step table to view its associated Steps details. The Step details include the Status code details and a latency time period for each Step. 

Step details tab

Viewing Alerts

You can select a Test from the Test and Step table to view its associated Alerts.

Test and Steps Alerts tab

Important:

Note: Selenium Web checks cannot run in a private Incognito window in Chrome browser.

Procedure to Create Selenium Web Checks

  1. In LogicMonitor, navigate to Resources > Add > Synthetics.
    Add Synthetics tab
  1. Follow the onscreen instructions to upload the .side file from the browser transaction recording.
    Note:
    You can upload a .side file containing a maximum of 10 tests. 
    The size of the uploaded .side file must be a maximum of 1MB. 
  2. On the Step Setup page, you can view the different tests, number of steps, and parsing information in the Tests table. You can split a single test into multiple steps by performing the following:
    1. Select a desired test from the Tests table.
      The Step Setup tab displays all the test operations. 
    2. Toggle on the Split into Steps to create multiple steps. 
      Note: The first step is created by default at the top of all the commands. The first step cannot be deleted once saved. 
    3. Select Create New step iconat your required level and enter the appropriate step name. 
    4. Once you complete adding all your steps then select save icon.
      Note: You can add a maximum of 10 steps. 
  3. On the Settings page, perform the following:
    1. Select your required polling interval. The default and recommended value is 10 minutes. 
    2. Enter your collector name and select it.
  4. At the Permissions page, ensure you add the appropriate credentials for authentication.
New Synthetics web test page

Refer to the documentation for your specific MFA provider to obtain the appropriate MFA type, seed, and length for your test credentials. 

Note: You cannot edit Selenium Web Checks once they are created.

Example of Synthetics Website Test

If you want to run a Synthetics Test on a website, which contains multiple operations, there is an option to create multiple steps to logically group all your website’s operation (Login, search, and checkout). On completing the Synthetics Web Test process, the information displays on the Resources page. Each step is treated as an individual device here. This helps you to easily navigate through all of your website’s operations.

Requirements for Selenium Web Checks

Authentication for Selenium Web Checks

You can add authentication to your Synthetics Web Checks with the following actions:

Note: In addition to authentication, you can specify a LogicMonitor property while uploading the .side file in the portal using the wizard. Specify in the format {synthetics.variable.variableName}. For example, synthetics.selenium.test.timeout.

Credentials consist of a username and password if you are using multi-factor authentication (MFA) token. LogicMonitor leverages the existing variable substitution in Selenium IDE to securely inject your authentication information.

Recording a Browser Transaction

Follow the Getting Started instructions from Selenium to record a browser transaction.

Recommendation: You can add WAIT_FOR_ELEMENT_VISIBLE property in the .side file and set the value greater than zero to allow a waiting period for the elements to load. A timeout error displays, If the elements don’t load in the specified period

When complete, save your .side file in a location you can access for uploading to LogicMonitor.

Note: Selenium allows you to connect to a session using a VNC viewer to watch the browser as a test executes. You can connect VNC directly to the exposed node port using a VNC viewer (For example, VNC Connect).).
Selenium Grid 4 includes a NoVNC web viewer. Exposing port 7900 allows you to open the port in a browser and see the VNC viewer activity without installing a viewer. If you use the provided docker-compose file, you would use the following:
– Chrome: “http://:7900”
– Edge: “http://:7901”
– Firefox: “http://:7901”
See the following for additional tips:
Debugging.
You can also run “Poll now” on the Selenium Webcheck to see any error messages that may be encountered.

Adding Authentication to the Browser Recording

To add authentication, you must parameterize the credentials in the Selenium .side file by replacing each instance of username, password, and token with the appropriate variable substitution.

Variables can be substituted in Selenium IDE text fields by surrounding a variable name with ${}. For example, to substitute the value of the variable myVar into the condition of an if statement would look similar to the following:
${myVar} === "a".

For more information, see Selenium’s Conditional Branching documentation.

LogicMonitor uses the following special variables to substitute your credentials username, password, and token respectively:

Selenium IDE screen

Note: Each credential field (username, password, and token) are printed to the execution log using the echo command.

Recommendation: Specify multiple test user accounts to be added to a “pool” of users that the test pulls from. This ensures MFA can be tested properly and avoids situations where one specific test user is attempting to log in too many times from different locations.

Downloading the SIDE file

You can download the SIDE file used for your Synthetics Web Check.

  1. In LogicMonitor, navigate to Resources > select Synthetics resource.
  2. Select (Manage Resource Options) more options icon
  3. Select Download SIDE file

Workflow

The following diagram illustrates the LogicMonitor APM setup workflow:

Procedure

Follow the below steps to setup LogicMonitor APM: 

  1. Selecting data ingestion type from our offerings
  2. Setting up the different components
  3. Analyzing data, managing logs and alerts on the LogicMonitor platform

Selecting Data Ingestion Type from our Offerings

You need to choose the best APM offering for your application from the following:

Note: You can also ingest logs from your application to the LogicMonitor platform using the LogicMonitor API or SDK, LogicMonitor Collector, or OpenTelemetry collector.

Setting up the Different Components

The following is the setup requirement for the different APM offering:

Selenium Synthetics: Install LogicMonitor Collector on your system and then install Selenium Server. Once you install the LogicMonitor Collector and Selenium Server (Grid), you can add a Selenium Synthetics Web check in your LogicMonitor portal for ingesting Synthetics data to LogicMonitor. For more information, see Selenium Synthetics Setup

OpenMetrics Integration: Install LogicMonitor Collector on your system and use the OpenMetrics datasource wizard to load metrics from an OpenMetrics endpoint and select the metrics to process into datapoints for collection. For more information, see OpenMetrics DataSource Wizard.

PushMetrics API and SDK: LogicMonitor Push Metrics REST API programmatically ingests metrics for multiple instances associated with a single resource and DataSource. For more information, see Ingesting Metrics with the Push Metrics REST API.

Traces: LogicMonitor provides a wrapped version of OpenTelemetry that is pre-configured to forward traces from your instrumented applications to the LogicMonitor platform. You can install an OpenTelemetry Collector on Linux, Docker, or Kubernetes. For more information, see OpenTelemetry Collector Installation

Analyzing Data, Managing Logs and Alerts on the LogicMonitor Platform

All the traces and operations of the trace data from your instrumented applications displays on the Traces page. You can access the Traces page from the navigation sidebar or from a service in Resources. For more information, see Traces Page Overview

For every static or dynamic threshold set for the metrics monitored at the Resource or Service levels, you will receive alerts on these trace and operation metrics. For more information, see Alerting on Trace Data

You can use the OpenTelemetry Collector Installation wizard in LogicMonitor to install an OpenTelemetry Collector. This wizard guides you through choosing a platform for installation, allows you to customize the configuration file (For example, you can configure your Cross-Origin Resource Sharing (CORS) policy by specifying the domains the collector is allowed to receive requests from), and provides the command for installing the Collector. If you are installing the Collector in a container, you can edit this command to include optional parameters that allow you to further customize the installation of the Collector.

For more information about CORS, see Mozilla’s Cross-Origin Resource Sharing (CORS) documentation.

Installing an OpenTelemetry Collector on Linux

You can install the OpenTelemetry Collector on Linux as a root or non-root user. For root users, lmotel runs as a service; and for non-root users, lmotel runs as a process. 

  1. Navigate to Traces > Onboarding icon (Onboarding), and select Install OpenTelemetry Collector.
  2. Enter a name for the Collector, and select Linux for the platform.
  3. Select the version of the Collector you want to install.
  4. At the Review Configuration step of the wizard, make changes to the configuration file as necessary to customize the Processors in the OpenTelemetry Collector settings. For more information about the modifications you can make, see Configurations for OpenTelemetry Collector Processors.
    You can configure CORS by specifying the origins to allow requests. For more information, see CORS (Cross-origin resource sharing) from OpenTelemetry.
  5. At the Commands step of the wizard, modify the cURL command as needed, and then copy the command.

Note: The cURL command to download the Collector binary is only valid for two hours after it is made available.

After you download the installer, you must make it executable (chmod +x installer_file) and then run the executable (./installer_file).

In addition, the installation path for the non-root user is the following:

# installation_path=/home# status check:

$ ps -ef | grep lmotel

Installing an OpenTelemetry Collector in Docker

The wizard provides you with a preconfigured Docker run command for running a container with LogicMonitor’s OpenTelemetry Collector Docker image.

  1. Navigate to Traces > Onboarding icon (Onboarding), and select Install OpenTelemetry Collector.
  2. Enter a name for the OpenTelemetry Collector, and select Docker for the platform.
  3. Select the version of the Collector you want to install.
  4. At the Review Configuration step of the wizard, make changes to the configuration file as necessary to customize the Processors in the OpenTelemetry Collector settings. For more information about the modifications you can make, see Configurations for OpenTelemetry Collector Processors.
    You can configure CORS by specifying the origins to allow requests. For more information, see CORS (Cross-origin resource sharing) from OpenTelemetry.
  5. At the Commands step of the wizard, do the following:
    1. Enter the username for the user with the minimum privileges. This is the API-only user you created for installing the OpenTelemetry Collector.
      An Access ID and Access Key are automatically created for this user. This is required to authenticate to Docker when you install the OpenTelemetry Collector in your Docker container.
    2. Copy the Run command to use for installing the Collector.
      You can modify this command as needed by entering optional parameters in the command. For more information, see Configurations for OpenTelemetry Collector Container Installation.
  6. Click Finish.

Use the command from the wizard to install the OpenTelemetry Collector in Docker.

Note: If using Microsoft Azure App Service, you can deploy the OpenTelemetry Collector to an Azure Container Instance after you install it in Docker. For more information, see Configurations for OpenTelemetry Collector Deployment in Microsoft Azure Container Instance.

Installing an OpenTelemetry Collector in Kubernetes

LogicMonitor provides Helm Charts to install an OpenTelemetry Collector in a Kubernetes cluster. These Helm Charts run the OpenTelemetry Collector as a replicaset. The wizard provides preconfigured Helm commands for adding LogicMonitor charts and installing the OpenTelemetry Collector.

In addition, you can leverage an Ingress resource for use with the OpenTelemetry Collector by specifying the Ingress Endpoint. This allows the OpenTelemetry Collector to communicate in a hybrid environment if only some of your resources or services are hosted in Kubernetes, and you need these resources to communicate with resources not hosted in Kubernetes.

  1. Navigate to Traces > Onboarding icon (Onboarding), and select Install OpenTelemetry Collector.
  2. Enter a name for the OpenTelemetry Collector, and select Kubernetes for the platform.
  3. Select the version of the Collector you want to install.
  4. At the Review Configuration step of the wizard,  make changes to the configuration file as necessary to customize the Processors in the OpenTelemetry Collector settings. For more information about the modifications you can make, see Configurations for OpenTelemetry Collector Processors.
    You can configure CORS by specifying the origins to allow requests. For more information, see CORS (Cross-origin resource sharing) from OpenTelemetry.
  5. At the Commands step of the wizard, do the following:
    1. Enter the username for the user with the minimum privileges. This is the API-only user you created for installing the OpenTelemetry Collector.
      An Access ID and Access Key are automatically created for this user. This is required to authenticate to Kubernetes when you install the OpenTelemetry Collector in your Kubernetes container.
    2. If you want to leverage an Ingress resource, enter the Ingress Endpoint on which the Ingress Controller listens for incoming spans.
    3. Copy the Helm Chart command to use for installing the Collector.
      You can modify this command as needed by entering the following:
  6. Click Finish.

The OpenTelemetry Contrib distribution is a repository for OpenTelemetry Collector components that are not a part of the core repository and distribution of the collector. LogicMonitor Exporter is a part of the OpenTelemetry Contrib distribution.

The OpenTelemetry Collector allows you to collect OpenTelemetry-supported telemetry data from your environment to the LogicMonitor platform. LogicMonitor associates the traces and logs telemetry data from the single OpenTelemetry Collector through the LogicMonitor Exporter to simplify your application’s operations and troubleshoot issues. For more information, see LogicMonitor Exporter from OpenTelemetry. 

The OpenTelemetry Contrib distribution offers you the following:

Important: You are responsible for upgrading and configuring of OpenTelemetry Collectors. Contact Support if you need assistance.

The following image illustrates the traces and logs ingestion process using a single LogicMonitor Exporter in the OpenTelemetry Collector:

LogicMonitor Exporter workflow diagram

Installing OpenTelemetry Collector from Contrib

Before starting the installation, see “General Requirements and Considerations” for installing the OpenTelemetry Collector. For more information, see OpenTelemetry Collector Installation

Downloading and Installing OpenTelemetry Collector

Depending on your environment, you can download and install OpenTelemetry Collector on Linux, Windows, Docker, or Kubernetes. For more information, see Getting Started from OpenTelemetry. 
For more information on viewing the different releases, see OpenTelemetry Collector Releases from OpenTelemetry. 

Note: LogicMonitor Exporter is available with OpenTelemetry Collector Contrib v0.72.0 or later.

Configuring LogicMonitor Exporter

To configure LogicMonitor Exporter, you need to create a configuration file:

receivers:

  windowseventlog:

    channel: application

  syslog:

    tcp:

      listen_address: "0.0.0.0:54526"

    protocol: rfc5424

  jaeger:

    protocols:

      grpc:

  otlp:

    protocols:

      grpc:

processors:

  batch:

exporters:

  logicmonitor:

    endpoint: https://<company_name>.logicmonitor.com/rest

    api_token:

        access_id: "<access_id of logicmonitor>"

       access_key: "<access_key of logicmonitor>"

extensions:

  health_check:

service:

  extensions: [health_check]

  pipelines:

    logs:

      receivers : [ windowseventlog, syslog ]

      processors: [ batch ]

      exporters : [ logicmonitor ]

    traces:

      receivers : [ otlp, jaeger ]

      processors: [ batch ]

     exporters : [ logicmonitor ]

Exporting Telemetry Data from OpenTelemetry Collector 

The OpenTelemetry Collector automatically starts exporting telemetry data to LogicMonitor after you add the LogicMonitor Exporter to your OpenTelemetry Collector configuration file.


While you can view the trace data in different widgets, select View Data to view the details for the selected namespace along with the time period. 

Important: You can view span data by selecting Spans from the drop-down list above the graph. The span data options are similar to the traces data.

The Traces page displays the trace data using the following visual components:

You can use filters to narrow your trace data. When you apply the filter to the trace data, the Traces Graph and Traces Table update based on the options selected in the filters. From the Traces Table, you can access the end-to-end trace detail screen.

View traces data page

Traces Graph

The Traces Graph allows you to visualize how your traces are performing over time using the following:

You can select “Latency” or “Time Series” to view the trace data in the Traces Graph for the operation you select.

View traces graph page

You can narrow the data in the graph by clicking and dragging your cursor over the desired data. The graph zooms in on the selected data.

Comparing Spans Data on Latency Graph

You can visually compare a single span’s data for two different time ranges on the latency graph. To display these details on the latency graph follow the steps:

  1. Select compare spans iconto open the Compare Spans modal.
  2. On the Time tab, select your required time period from the Second Time Period drop-down.  
  3. (Optional) On the Tags tab, specify any tags as required. 
  4. Select Go.
    Two overlay graphs display for the specified time ranges.
    overlay graphs page

In addition, you can perform the following:

Traces Table

The Traces Table displays the specific operations within a trace using the following details:

Field Description
Time The time that the operation occurred. You can sort the table in ascending or descending time order.
Operation The name of the operation, which is set during instrumentation.
Kind The kind or type of operation (internal, client, servers).
Duration (ms) The duration of the operation in milliseconds. You can sort the table in ascending or descending time order.
Namespace The namespace (application) to which the trace belongs.
Service The service where the operation originated. If there are errors associated with the service, you will see an icon to indicate the severity.
Resource The resource associated with the operation. If there are errors associated with the resource, you will see an icon to indicate the severity.

In addition to the specific operations of a trace, the traces table also provides the following features:

End-to-End Trace View

Selecting a specific operation displays the end-to-end trace that operation participates in along with other operations in the trace. The end-to-end view focuses on the operation you select, but you will also see the operations before and after it in the timeline.

For each operation, this view displays the Service name and Operation name followed by the duration and error status of the operation. The length of the bar indicates its duration, while the color of the bar indicates the error status of the operation.

View traces_timeline_page
End-to-end trace view and detail panel for the selected operation.

Selecting an operation opens the detail panel for that operation. This detail panel shows the following:

You can use this contextual information to troubleshoot issues identified by the traces (using duration or error status).

The following table lists the supported OpenTelemetry versions: 

Important: Use the latest OpenTelemetry Collector version as the previous versions will be deprecated.

Version Release Date Highlights
5.2.00 (Recommended) 22 May 2025
  • LogicMonitor now has improved log-to-resource mapping, which maps logs to the correct cloud resource instead of defaulting to the collector host.
    You can manually define the resource using the LM_DEVICE_ATTRIBUTES=”key1=value1 environment variable. These values are used to associate logs with the intended device.
  • Added POSIX-compliant installer to enable broader compatibility and smoother installation across various Unix-like systems.
5.1.00 19 March 2025 LogicMonitor now supports monitoring for Generative AI apps such as Large Language Models (LLMs) and AI chatbots using the LogicMonitor OpenTelemetry Collector (OTEL), with metrics and traces from OpenLIT and Traceloop.
5.0.01 7 November 2024 LogicMonitor now allows you to filter logs when created from a LogSource in the Modules page.
5.0.00 13 August 2024 LogicMonitor now supports the upgrade of the OpenTelemetry collector.
4.0.00 11 June 2024
3.0.00 9 October 2023
  • Enhanced security by allowing authentication between LogicMonitor Platform and OpenTelemetry Collector to accept CCI (Collector credential and Company UUID) parameters from headers instead of query params.
  • Added SBOM for the third party consumed in LM OTEL.
  • LogicMonitor now uses OpenTelemetry Collector Contrib version 0.72.0. For more information, see OpenTelemetry Collector Contrib version 0.72.0 from OpenTelemetry.
  • Removed loggingexporter from the default config.
  • Updated the sampling percentage of probabilisticsamplingprocessor to 10 and added it to traces in the default config.
  • Added support for Filter Processor.

Deprecated OpenTelemetry Collectors

Version Release Date Highlights
2.0.10 16 January 2023
  • You can now seamlessly export logs, and traces to LogicMonitor platform with a simplified lmexporter leveraging the LM Data SDK. For more information, see LogicMonitor Go Data SDK from OpenTelemetry.
  • The retry interval of the collector credentials has been reduced from 45 minutes to 15 minutes. The rotation of the collector credentials takes place every 24 hours.
  • LogicMonitor now uses OpenTelemetry Collector Contrib version 0.50.0. For more information, see OpenTelemetry Collector Contrib version 0.50.0 from OpenTelemetry.
  • LogicMonitor now uses Fluent bit version 1.9.0. For more information, see Fluent bit version v1.9.0 from OpenTelemetry.
  • The overall installation process has been improved, especially the retry mechanism.
2.0.00 29 June 2022 LogicMonitor now uses OpenTelemetry Collector Contrib version 0.50.0. For more information, see releases from OpenTelemetry.
1.0.06 21 April 2022
  • LogicMonitor now uses OpenTelemetry Collector Contrib version 0.36.0.
  • Collector credentials support for ingestion
  • Traces support in lmexporter

For more information on how to manage OpenTelemetry collectors, see Manage OpenTelemetry Collectors

LogicMonitor application authentication ensures security when you ingest data from your application to the LogicMonitor platform and vice-versa. This mechanism is mainly achieved through different tokens. You need authentication mainly for API-based interaction (logs, metrics, or traces) with the LogicMonitor platform or your account management actions (thresholds and alert management). For more information on creating API tokens, see API Tokens

Types of Tokens

The two methods of application authentication are listed as follows: 

LMv1 Tokens

LMv1 token is a key-based authentication which allows you to authenticate the API calls from your custom application to the LogicMonitor platform. The LMv1 token consists of a key pair (access-id and access-key). 

For example, if you’re an application developer and have access to the application source code. It is recommended that you use an LMv1 token to authenticate API calls to the LM platform.

The following are some benefits of using the LMv1 tokens:

Bearer Tokens

Bearer tokens are designed to provide application owners with an authentication mechanism by which they can authenticate the API calls from their applications to the LM Platform. You don’t need application code access to authenticate applications with the platform. Once created you can copy the bearer tokens in full text. Only required fields can be edited in the bearer token for easy implementation. 

You can use Bearer tokens in applications which don’t have encoding. These tokens are directly used as authorization headers. 
For example, if you’re an application developer and don’t have full access to the application source code. You can set HTTP headers with a static Bearer token, without much modification to the application code. 

The following are some benefits of using the Bearer tokens:

Best Practices

Selecting each service on the topology map displays information on which namespace it belongs to, a list of spans, associated alerts and logs. All this information displays in a tabular format below the topology map based on the selected service. 

Note: There are some service nodes which appear in the topology map but when selected do not display data due to inadequate permissions.

Topology table screen

The application topology table displays the following details:

Tab Description
Properties Displays the following information about the service:
  • namespace name
  • service namespace name
  • SDK telemetry language
  • version
  • name
  • total spans
  • errors
  • average duration of the service.
Spans Displays all the spans information based on the time range selected in the sort data by time range option. This includes the service operation name, duration of the span, namespace or application name to which the service belongs, service name, and resource id.
Note: You can select New_window to view the operation details in a new tab.
Alerts
Displays all the alerts for the selected service. This includes information like severity, alert rules, instance, datapoint, escalation rule. For more information on alerts, see Managing Alerts from the Alerts page
Note:

  • You can filter the alerts proximity based on Time Dependent (Default) and All Active Alerts.

  • Select Table_settings to customize the table view.
  •  
  • You can select New_window to view the alert details in a new tab.
 
Logs Displays all the relevant logs for the selected service. This includes the time, severity, and message for the selected service.
Metrics Displays the metrics (Duration, OperationCount, ErrorOperationCount) of the operations associated to the service in a graph. The metrics displays for a time range (+/- 15 minutes) of the ingested span. You can zoom in on each graph.