Build 191

2020-12-15

On-Premises Release Notes

Feature

K8s-based deployment: K8s Operator

kubectl instana plugin for K8s-based deployment

Cumulative Features from Release #190, #191

Java SDK improvements

The Instana Java SDK in version 1.2.0 brings two new major features.

It is now possible to not only create new and manage started spans by the Instana Java SDK, but also to manage spans created by Instana AutoTrace. To do so the methods of SpanSupport can now handle both kinds of spans. A major use-case for this feature is adding custom annotations to automatically generated spans from known frameworks.

Furthermore, two new annotations were added to the SDK. Methods can be annotated with @TagReturn the easily capture their return value in the currently active span, regardless if it's an SDK or AutoTrace one. A method parameter can be annotated with @TagParam to capture its value in the currently active span.

Configuration-based Java Trace SDK

The Configuration-based Java Trace SDK enables a declarative approach to instrumentation that, unlike the Java Trace SDK, requires no code modification; the configuration-based nature comes at the cost of expressiveness (you can do more things with the Java Trace SDK), but it is a new tool in your arsenal ;-)

Google Cloud Datastore

Instana now supports monitoring of Google Cloud Datastore. This includes built-in dashboard that displays key metrics and health events. For more information, see the Google Cloud Datastore docs.

Google Cloud Run Support

We are extending our Google Cloud Run support with .Net Core instrumentation and monitoring.

Check out our Google Cloud Run documentation to get started.

Google Cloud Pub/Sub

We released support for the googleapis/java-pubsub, starting with release 1.105, and the Spring Cloud GCP for Pub/Sub, starting with version 1.2.5.RELEASE. We also added support for the Node.js client library @google-cloud/pubsub to our Node.js tracer with @instana/[email protected].

Also, we added support for the .Net Core client library Google.Cloud.PubSub.V1. All operations are automatically supported except Consume which can be supported via Instana.Tracing.Core.Sdk. For more information, how to support Consume using SDK, please see the example here.

Grouping on Custom Dashboards

On Custom Dashboards, you can now group the results for area line charts and stacked bar charts. You can group by a tag and display the Top/Bottom five results on your chart widgets. If you want to know the count of the items that were not grouped, then you can also aggregate the remaining groups using the "Display aggregation of other groups" toggle. For more information and an example, please see the documentation here.

Helm Chart

We released several improvements over the past few weeks. (As a reminder, there is a new home for the Instana agent chart in the Instana Helm Charts repository, and it is also indexed in ArtifactHub.)

  • New feature: Bring-your-own secret for agent keys: using the new agent.keysSecret setting, you can specify the name of the secret that contains the agent key and, optionally, the download key; refer to Bring your own Keys secret for more details.
  • New feature: Add support for affinities for the agent pod via the agent.pod.affinity
  • Improvement: Seamless support for Instana static agent images. When using an agent.image.name starting with containers.instana.io, automatically create a secret called containers-instana-io containing the .dockerconfigjson for containers.instana.io, using _ as username and agent.downloadKey or, if missing, agent.key as password. If you want to control the creation of the image pull secret, or disable it, you can use agent.image.pullSecrets, passing to it the YAML to use for the imagePullSecrets field of the Daemonset spec, including an empty array [] to mount no pull secrets, no matter what.
  • Fix: Automatically recreate agent pods if there is a change in the ConfigMap created by this Helm chart.

Account & Billing

Go to Settings > Account & Billing > Technologies Reporting to see the technologies you are monitoring.

Scoped Pipeline Feedback

Pipeline Feedback Release Markers can now be defined with a scope. The scope which can be defined are

  • Service
  • Application
  • Service within an Application

The Release Markers will only be shown in dashboards for the given scope. The scopes can be mixed to define even complex Release Marker requirements. Read the Pipeline feedback documentation for further information.

Unbounded Analytics enhancements (Closed Beta)

Unbounded Analytics for calls and traces has been completely redesigned with more capabilities. You will be able to create much more sophisticated filters using brackets and an OR operator in addition to previously supported AND operator. You will be able to quickly peek into groups to see their calls or traces. For more information watch this preview video https://www.youtube.com/watch?v=OP1ybt80JTk.

Please, let us know if you would like to sign up for the closed beta program.

AWS Lambda Support for Java (Technology Preview)

In addition to the existing Node.js and Python support, Instana now offers AutoTrace support for AWS Lambda functions built in Java. The work to set up Instana tracing is minimal and in line with the Node.js and Python Lambda experience: include adding our AWS Lambda Layer and specifying three environment variables. The AWS Lambda Java runtimes java8.a12 and java11 are supported. Head to our AWS Lambda documentation for full information.

AWS Lambda Support for Go

With the new v1.23.0 of github.com/instana/go-sensor you can trace AWS Lambda functions written in Go with Instana. The new github.com/instana/go-sensor/instrumentaion/instalambda instrumentation package provides wrappers to instrument AWS Lambda handlers with Instana. For more details, refer to the instrumentation README and Instana AWS Lambda Go documentation pages.

PHP 8 Support

The Instana trace extension version beginning v1.13.0 ships support for the PHP 8 runtime environment. To put it in context, we support PHP 8 from day 1 and, as always, the PHP extension will be automatically delivered over your Instana agents with automatic updates and automatically installed in your shiny PHP 8 runtimes.

Agent: Configuration From Process Environment & Files

The host agent is capable to read configuration values in configuration.yaml from process specific environment variables and files. This way multiple instances of the same technology (e.g. multiple MySQL database instances) with different credentials can be configured. Reading configuration values from files alignes with th way kubernetes mounts secrets into containers. For more details refere to the host agent configuration instructions.

API Token Management On Unit-Level

Many of our customers have what we call multiple Instana units like prod-example.instana.io and qa-example.instana.io (belonging to tenant example). As part of our investment to improve Instana's access control mechanisms, we are today changing how Instana's Web REST API tokens work.

Previously, a single Web REST API token granted access to all Instana units belonging to the same tenant. This behavior created access-control challenges. For example, when one wanted to open up a development unit's access control to a broader audience. With this release, you can manage Web REST API tokens for each unit. A Web REST API token created for qa-example will not grant access to prod-example and vice versa.

Web REST API tokens existing at the time of the migration were duplicated for each tenant unit. This duplication means that existing Web REST API tokens will continue just as they did before.

Instana Cloud Native Buildpack for Google Cloud Run

We released the Instana Buildpack for Google Cloud Run, a shiny Cloud Native Buildpack to be used together with the Google Cloud Buildpacks builder to create Google Cloud Run images that already contains everything you need to monitor applications running on managed Google Cloud Run written in:

  • Java
  • Node.js
  • .NET Core

When you use the Instana Buildpack for Google Cloud Run together with the pack utility, all you need to do to is to add the INSTANA_ENDPOINT_URL and INSTANA_AGENT_KEY environment variables to your service revision and you are good to go ;-)

As always, you will find the instructions to use this new way of instrumenting your Cloud Run applications in the "Installing Instana Agents" dialog.

Instana Pipeline Feedback Orb for CircleCI

The Instana Pipeline Feedback orb allows you to create new releases and track the latest release from the comfort of your CircleCI workflows.

vSphere vMotion events

Instana agent collects various vMotion event types and reports them as Instana events. For more details, refer to the vMotion events collection.

Custom Payload in Alerts

The payload of alerts can now be customized. This allows to either include relevant information of your monitored system as part of your alert notification, or to enable advanced alert routing use-cases using your alert management tool of choice. for further details, please check out the Configure Custom Payload in Alerts docs.

Solace JMS support for the Java Trace Sensor

As of version 1.2.356 the Java Trace Sensor officially supports tracing JMS messages with the Solace JMS client version 10.x.

Authentication support for Git-based Configuration Management

The Git-based Configuration Management now supports authentication at remote repositories through environment variables. This feature is especially handy to access repositories hosted by one of the main git-hosting providers using private token. How to set up such an integration is described in this easy example.

DBmarlin integration

Instana now integrates with DBmarlin. Several Instana database dashboards include a link towards DBmarlin in case you want a deeper insight of your database and application performance.

Other features

  • OpenTelemetry trace ingestion using Agent as Collector is in (early) technical preview. For more information about supported scope and setup instructions, please refer to the OpenTelemetry documentation.
  • Custom dashboards can now be created via our Web REST API.
  • Custom dashboards' configuration can now be inspected as JSON directly from within our user interface even without write access.
  • Account & Billing tab is now only visible to users with enabled Access to account and billing information permission.
  • Instana agent Helm chart:

    • Allow using user-specified memory measurement units in agent.pod.requests.memory and agent.pod.limits.memory. If the value set is numerical, the Chart will assume it to be expressed in Mi for backwards compatibility.
    • Exposed agent.updateStrategy.type and agent.updateStrategy.rollingUpdate.maxUnavailable settings.

Improvements

  • Synthetic calls: automatic detection of Spring Cloud Consul Config Watch jobs.
  • Stored dashboard links maintain selection of tabs and metric aggregations.
  • The TV mode of custom dashboards now persists across page refreshes.
  • The Node.js tracer (@instana/collector) now supports automatic aggregation of very short (< 10 ms), high frequency database calls. This helps to keep the performance overhead of tracing at a minimum in scenarios where such calls are executed in rapid succession. This capability is opt-in at the moment. It will become the default behaviour in one of the next releases. Refer to the Node.js configuration docs to learn how to enable it right away.
  • Tracing SDK: support for GraphQL spans.
  • Our website monitoring user agent parser gets an update to support many new user agents and to improve detection for existing user agents. Notable changes:

    • Improved detection for Android 9 and Android 10.
    • Improved detection for mobile web views.
    • For Windows operating systems, we now correctly differentiate between operating system name and version.
    • New detection for less commonly used web browsers, e.g., QQ Browser Mobile, MiuiBrowser, QQ Browser Mobile and others.
  • JVM: Display heap memory usage percentage at Heap Memory dashboard
  • MySQL Sensor: Add support for monitoring replica metrics
  • Java Trace Sensor

    • Official support for Solace JMS
    • Prevent instrumentation of JVMs that already use the Dynatrace agent
    • Improve Kotlin Coroutine support
  • Small UI improvements in the Event Details View

Fixes

  • Maintenance Windows: fixed problem that Incidents have not been properly filtered in case an Issue was correlated that started outside of the maintenance window's timeframe.
  • Fix duplicated endpoints in different cases in frameworks where the path and path template are case insensitive such as asp.net.
  • Kubernetes: Sorting on deployments, deploymentConfigs, daemonSets, statefulSets and pods for Namespaces, Clusters, and Cluster > Namespaces

Notes

  • Incidents: we changed the definition of the displayed start time to the point in time when the Incident is triggered, instead of the earliest start time of all correlated events. This prevents side-effects when a long-running Issue is correlated to an Incident, such as listing the new Incident in the past or showing a duration that is different from when we send open or *close+ notifications.