User Defined Function Parameters

Introduction

In this article we'll cover the different parameters that you can modify in the OverOps UDFs.

Anomaly Functions

Anomaly Functions are executed periodically every 5, 10, 15, 30, or 60 minutes as configured in the Alert Settings dialog for a View.

Anomaly

Alert on events experiencing anomalous volume within a rolling time window. The source code for this function can be found on GitHub.

# the active time window (min) to inspect
activeTimespan = 1440

# The baseline time window (min) to compare against
baseTimespan = 10080

# Change in % that would be considered a regression
regressionDelta = 100

# Min rate in % that an event must exceed
minErrorRateThreshold = 10

# Min fixed volume that an event must exceed
minVolumeThreshold = 1000

# Name of label to apply to anomalous events
label = Anomaly

# Min interval for alerts
min_interval = 2d

# Max interval to retain anomaly label
max_interval = 3d

App Routing

The App Routing function allows you to automatically create views for active applications. The source code for this function can be found on GitHub.

# Name of category in which to place views
category_name = Apps

# Max num of views to create
max_views = 50

Automatic Entry Point Timers

The Automatic Entry Point Timer function enables you to measure transaction execution-time and locate slowdowns. All slowdown events can then be viewed from the "My Timers" view. The source code for this function can be found on GitHub.

# Active time period to look at.
active_timespan = 1h

# Required resolution for active period.
active_timespan_point_res = 100

# Baseline time period to look at.
baseline_timespan = 7d

# Required resolution for baseline period.
baseline_timespan_point_res = 100

# Minimum invocations in active period to start analyzing.
active_invocations_threshold = 100

# Minimum invocations in baseline period to start analyzing.
baseline_invocations_threshold = 250

# Minimum delta (in ms) between baseline and active average times for a transaction to be considered slowing.
min_delta_threshold = 5

# Percentage of slow invocations for a transaction to be considered slowing.
over_avg_slowing_percentage = 0.3

# Percentage of slow invocations for a transaction to be considered critically slowing.
over_avg_critical_percentage = 0.6

# Number of std deviations from the mean time for a transaction to be considered slow.
std_dev_factor = 1.5

# Number of std deviations from the mean time to set automatic timer to.
timer_std_dev_factor = 1.0

# Should maintain active timer for non-slow transactions.
timer_always_on = false

# Should actively place timers on non-slow transactions.
monitor_ok_transactions = false

# Minimum value allowed for a given threshold.
min_timer_threshold = 30

Deployment Routing

The Deployment Routing function automatically creates views for active deployments. The source code for this function can be found on GitHub.

# Name of category in which to place views
category_name = CI / CD

# Max num of views to create (views for non active deployments will be removed)
max_views = 6

# An optional prefix to add to the view name (e.g. 'New in')
prefix = 'New in '

Fixed Threshold

In the fixed threshold function, the volume of the events within the target view is compared against a defined target threshold. The source code for this function can be found on GitHub.

# A numeric value against which the volume of events is compared.
Threshold = 1000

Microsoft Teams Digest

Send a digest of alerts to Microsoft Teams. The source code for this function can be found on GitHub.

# Incoming Webhook URL to specific Microsoft Teams channel
url = URL_provided_by_Webhook

# Get events from the last {timespan} minutes
timespan = 5

# Optional (0 to ignore) fixed min volume threshold
threshold = 1000

Relative Threshold

Compare the view event volume against an error rate (%) and optional fixed threshold. The source code for this function can be found on GitHub.

# Acceptable error rate (1 to 100)
rate = 10

# Optional (0 to ignore) fixed min volume threshold
threshold = 1000

# Name of label to apply to anomalous events
label = Anomaly

# Min interval for alerts
min_interval = 2d

# Max interval to retain anomaly label
max_interval = 3d

Severity

Mark events as New if they were introduced in an active deployment and are important. Mark events as Regressed if they have crossed a volume threshold against a previous time frame. The code for this function can be found on GitHub.

# the time window (min) that we compare the baseline to
activeTimespan = 1440

# the time window (min) to compare the last <activeTimespan> against
baseTimespan = 10080

# a change in % that would be considered a regression
regressionDelta = 1

# a change in % that would be considered a critical regression (zero means no critical regressions)
criticalRegressionDelta = 0

# should the function attempt to apply seasonality algorithm
applySeasonality = false

# comma delimited list of exception types that are severe by definition
criticalExceptionTypes = NullPointerException;IndexOutOfBoundsException;ClassCastException;AssertionError

# minimum rate that a regression, new + non-critical event must exceed
minErrorRateThreshold = 0.1

# minimum volume that a regression, new + non-critical event must exceed
minVolumeThreshold = 500

# name of category in which to place views
category = Severe

# how to label new issues
newEventslabel = New Issue

# view to contain new issues
newEventsView = New Issues

# how to label regressed issues
regressedEventsLabel = Regression

# view to contain regressed issues
regressedEventsView = Regressions

# how long (minutes) should these labels "stick" to an event
labelRetention = 1440

Sync Jira

Sync events with Jira. See Synchronizing from Jira Back to OverOps. The source code for this function can be found on GitHub.

# Sync events from the last {timespan} days
days=30

# Jira address and credentials
jiraURL=
jiraUsername=

# For cloud-hosted Jira, use API token.
# For self-hosted Jira, use password.
jiraToken=

# Jira field to sync, either 'resolution' or 'status'
resolutionOrStatus=status

# Jira status for "Resolved" in OverOps. Leave blank to disable.
resolvedStatus=Resolved

# Jira status for "Hidden" in OverOps. Leave blank to disable.
hiddenStatus=Won't Fix

# Debug mode
debug=false

Channel Functions

Channel Functions are executed when a new event is introduced into a View.

App Tier Routing

Classify incoming events to logical applications according to the functional component within the code from which they originated. The source code for this function can be found on GitHub.

# Category name where app tiers views will be created.
category_name = Apps

# Enhance application tiers with  a delimited list: A=B;C=D;E=F, where the first item is a package (e.g com.acme.analyzing), and the second is an application tier (e.g AcmeAnalyzerApp).
# namespaces = com.acme.analyzing=AcmeAnalyzerApp; com.acme.manipulate=AcmeManipulatorApp

apply-label

Applies a specific input label to events. The source code for this function can be found on GitHub.

# Label to apply to events
label=sample_label_name

Microsoft Teams Alert

Send an alerts to Microsoft Teams. The source code for this function can be found on GitHub.

# Incoming Webhook URL to specific Microsoft Teams channel
url = URL_provided_by_Webhook

Routing

Classify incoming events according to the functional component within the code from which they originated. The source code for this function can be found on GitHub.

# Category name where tiers views will be created.
category_name = tiers

# Link to the full tiers list: https://git.io/fpPT0
# Enhance it with a delimited list: A=B;C=D;E=F, where the first item is a package (e.g com.mongo), and the second is a tier (e.g MongoDB).
# namespaces = org.company.db=DB; org.mongodb=MongoDB

Tier Routing

Classify events according to the functional component within the code from which they originated. The source code for this function can be found on GitHub.

# Category name where tiers views will be created.
category_name = tiers

# Link to the full tiers list: https://git.io/fpPT0
# Enhance it with a delimited list: A=B;C=D;E=F, where the first item is a package (e.g com.mongo), and the second is a tier (e.g MongoDB).
# namespaces = org.company.db=DB; org.mongodb=MongoDB