Instana

 View Only

Unleashing Your Instana to Observe New Technologies

By Ying Mo posted 2 days ago

  

Authored by @Ying Mo, @Paras Kampasi @Roger Kuo @Yanwei Li

Unleashing your Instana to observe new technologies

Background

Instana is a highly versatile tool, capable of observing a wide range of systems and technologies efficiently. However, users may have experienced some lack of ease of use when attempting to monitor some new systems or technologies that are not currently supported by Instana. Instead of being able to configure and extend Instana's observation capabilities independently, users may need to request for the new capabilities to be added. Such additions may include necessary code changes, e.g.: a new sensor to collect observability data, backend code to process the data sent from the sensor, and UI code to define how to visualize the data. After our team adds the feature, users may need to wait a few weeks or months for the next Instana release before they can adopt the new observation capabilities.

Fortunately, with the advent of OpenTelemetry, users now have the chance to improve the agility of the process. OpenTelemetry offers extensive support for collecting data from a wide range of systems and technologies. By leveraging the fruitful assets and contributions from the OpenTelemetry community, users can now integrate new observability functionalities independently without needing to wait for the next Instana releases. OpenTelemetry empowers Instana users to swiftly adapt to their evolving observability needs and enhances the overall flexibility of the Instana observability solution.

However, using OpenTelemetry only solves half of the problem. By default, Instana treats all metrics collected by OpenTelemetry as custom metrics. Due to the unknown semantics of the newly collected telemetry data, Instana cannot automatically process and visualize the data. To resolve this issue, Instana allows users to define how to visualize the new telemetry data by creating custom dashboards. With the combination of OpenTelemetry and Instana custom dashboards, users can both effectively take control of the data visualization process in Instana and contribute back to Instana by introducing new observation capabilities for external systems and technologies.

The Instana team is aware of the importance of this idea and has been continuously striving to improve the product. We want to help our users have a better experience with extending Instana's observation capabilities to support new systems and technologies. This blog aims to share some of our recent updates in this area as well as some current methods and best practices for this process.

Explore the public dashboards

Regular Instana users may find some difficulty in defining a custom dashboard from scratch, as it may require more familiarity of the feature as well as some deeper knowledge of the systems or technologies being used. If such is the case, the best way to start would be to search for and explore some existing dashboards that may fit similar needs.

Currently, the best place to search for and explore reusable dashboards is at https://www.npmjs.com/. The Instana team has been working on tooling support to help users bundle dashboards together as a cohesive integration package and publish it for public use by other Instana users.

Search Instana integration package

Users can browse through existing packages to search for relevant integration packages. After selecting a package, users are redirected to a landing page where they can find comprehensive details about the package, such as version history, documentation, and other additional resources and information.

Instana integration package homepage

Download and import the dashboards

With publicly available integration packages, users can now download and import custom dashboards into their existing Instana environments. This will immediately extend the observation capability of the environment to support the specified new systems or technologies.

The CLI for integration package management

The Instana team has created a command line tool, called Instana CLI for Integration Package Management, to support the downloading and importing process. In other words, this tool can be used to download bundled packages onto local machines and then import them into existing Instana environments.

The latest version of the tool can be found at: https://github.com/instana/observability-as-code/releases. Different binaries of the tool for different platforms can be found on the release page. Download the matching binary for a specific platform and rename it to stanctl-integration. The tool should now be able to be run anywhere on the local machine.

Entering stanctl-integration in the command line will return helpful information and the available commands supported by this tool:

$ stanctl-integration
Usage: stanctl-integration <command> <options>

Commands:
  stanctl-integration download  Download an integration package
  stanctl-integration import    Import an integration package into an environment
  stanctl-integration export    Export integration elements from an environment
  stanctl-integration init      Initialize a new integration package
  stanctl-integration publish   Publish the local integration package

Options:
      --version  Show version number                    [boolean]
  -h, --help     Show help                              [boolean]

You need at least one command before moving on

Download and import dashboards using CLI

Download the dashboards

To download an integration package with the tool, the package name must be specified. For example, the following command will download a package named @instana-integration/go:

$ stanctl-integration download --package @instana-integration/go

By default, the tool will create a sub-directory in the current working directory to store all the downloaded integration packages. This sub-directory will act as the root directory for the downloads. Using the --location option, users can define a specific directory as the root directory. For example, the following command will download the package under the root directory ./my-packages:

$ stanctl-integration download --package @instana-integration/go --location ./my-packages

Import the dashboards

Once an integration package is downloaded, the CLI tool can be used to import the package into any existing Instana environment. Users will need to provide an Instana server address and API token. An API token is required because the tool will make a series of Instana API calls to complete the import process. For example:

$ stanctl-integration import --package @instana-integration/go \
  --server $INSTANA_SERVER \
  --token $API_TOKEN

Again, users can specify the root directory for the downloads by using the --location option. For example:

$ stanctl-integration import --package @instana-integration/go --location ./my-packages \
  --server $INSTANA_SERVER \
  --token $API_TOKEN

To successfully import packages, the provided API token must have the Sharing custom dashboards publicly with all users and API tokens permission enabled. To confirm this, navigate through Settings -> Team Settings -> API Tokens from the left-hand side navigation menu. In the API Tokens page, select the token being used. In the Edit API Token dialog, find the Owner Permissions section and make sure the Sharing custom dashboards publicly with all users and API tokens item is enabled.

Edit Instana API token

Specify parameter values for the dashboards

Some of the custom dashboards within a package may include extra parameters. This is caused when certain data values are not defined when creating the dashboard. The package’s homepage will include information for any such existing parameters. When importing such dashboards, the --set option can be used to specify the actual values of the parameters. For example:

$ stanctl-integration import --package @instana-integration/go \
  --server $INSTANA_SERVER \
  --token $API_TOKEN \
  --set key1=value1 \
  --set key2=value2

Conclusion

IBM Instana is highly versatile and capable of observing a wide range of systems and technologies efficiently. However, adding observation capabilities for unsupported and new systems and technologies requires a tedious process and waiting period.

By leveraging OpenTelemetry, users can now circumvent this process by using existing OpenTelemetry collector implementations from the community or building their own. With the help of Instana’s custom dashboards, users can also define how collected data is visualized. This allows users to independently extend Instana’s observation capabilities to support new systems or technologies.

The Instana team has been continuously striving to improve the product to help customers gain a better experience with this requirement. Recent updates include the ability to bundle custom dashboards as sharable integration packages that can then be published and publicly used by other users. The team has also provided tooling support for direct downloading and importing of the packages.

The next blog post will discuss how to make custom dashboards publicly sharable, thereby contributing to the whole Instana community and ecosystem.


#CustomDashboards
#General
#OpenTelemetry
#Integration
#Tutorial

0 comments
19 views

Permalink