Plug-in Documentation

Bottleneck Detection


The Bottleneck Detection plug-in monitors, detects, and provides an alert when bottlenecks are detected in a value stream. A value stream bottleneck is a restriction in the local throughput that limits the global throughput of a system.

The plug-in uses three algorithms each detecting a different type of bottlenecks:

  • Dominant stage bottleneck – one stage in a value stream has a time-in-stage value greater than or equal to the sum of the time-in-stages of all other stages in that value stream
  • Batching bottleneck – work items exit a given stage in short time intervals separated by large intervals with no associated activity
  • Inflow/outflow asymmetry bottleneck – unusually large difference of work items flowing into and out of a stage on a given day

The plug-in runs automatically every 24 hours after a manually started run.

At runtime, records for all defined value streams are processed through each bottleneck type algorithm. Bottleneck detection records are returned for each value stream. A value stream can have multiple bottleneck detection records created during a given run, or it may have none. If multiple bottlenecks are found for a given run, only the highest severity bottleneck is displayed. However, the full set of detections are logged in the database.

You can view detected bottlenecks on the All Value Streams page.

For additional information, see Bottleneck detection.


Must be running UrbanCode Velocity version 2.0 and later to use the plug-in.


UrbanCode Velocity plug-in images are located in DockerHub. To view available versions, see the UrbanCode DockerHub.


Version 1.0.2

  • Initial release


To use the Bottleneck plug-in you must define the integration, the plug-in must be loaded and an instance created before you can configure the plug-in integration. You define configuration properties in the user interface or in a JSON file.

Integration type

The Bottleneck Detection plug-in supports scheduled events integration. There is only one scheduled event which is described in the following table.

Scheduled events
Name Description
execute Calculate bottlenecks.


There are two methods to integrate the plug-in:

  • Using the user interface
  • Using a JSON file

The tables in the Configuration properties topic describe the properties used to define the integration.

Using the user interface

  1. From the Plugins page, click Settings > Integrations > Plugins.
  2. Under the Action column for the plug-in, click Add Integration.
  3. On the Add Integration page enter values for the fields used to configure the integration and define communication.
  4. Click Save.

Using a JSON file

The JSON file contains the information for creating a value stream. Within the JSON file is a section for integrations. It is in this section that plug-in properties can be defined.

  1. From a value stream page, download the value stream map. The value stream map is a JSON file used to define integrations.
  2. Edit the JSON file to include the plug-in configuration properties.
  3. Save and upload the JSON file. This replaces the current JSON file with the new content.
  4. View the new integration on the Integrations page.

Configuration properties

The following tables describe the properties used to configure the integration. Each table contains the field name when using the user interface and the property name when using a JSON file.

  • The General Configuration Properties table describes configuration properties used by all plug-in integrations.
  • The Bottleneck Detection Configuration Properties table describes the configuration properties that define the connection and communications with the Bottleneck Detection server. When using the JSON method to integrate the plug-in these properties are coded within the properties configuration property.
General Configuration properties
Name Description Required
image The version of the plug-in that you want to use. To view available versions, see the UrbanCode DockerHub. If a value is not specified, the latest version is used. No
name An assigned name to the value stream. Yes
loggingLevel The level of Log4j messages to log. Valid values are: all, debug, info, warn, error, fatal, off, and trace. The default is info. No
properties List of configuration properties used to connect and communicate with the UrbanCode Velocity server. Enclose the properties within braces. Yes
tenant_id The name of the tenant. Yes
type Unique identifier assigned to the plug-in. The value for the Bottleneck Detection plug-in is ucv-ext-bottleneck-detection Yes

Configuration Properties

The configuration properties which are included in the properties field are unique to the Bottleneck Detection plug-in and define the connection and communication to the UrbanCode Velocity server.

Bottleneck Detection Configuration Properties
Name Type Description Required Project Name
UCV User Access Key Secure The user access key used to authenticate with the UrbanCode Velocity server. Yes ucvKey


The following example can be used as as template to include the Bottleneck Detection plug-in integration into the JSON file. Copy and paste the template into the JSON file and make the appropriate changes.

"integrations": [
      "type": "ucv-ext-bottleneck-detection",
      "name": "Bottlenecks",
      "tenant_id": "5ade13625558f2c6688d15ce",
      "ucvKey": "key
      "logginglevel": "info",
      "properties": {