Skip to content

Failed Poll Metrics

Failed poll metrics are the subset of Butler SOS error-tracking events that indicate Butler SOS could not poll a Qlik Sense server successfully.

These events are stored in InfluxDB only. They are written to the same measurement as other Butler SOS error events, but can be isolated by filtering on the error_type tag.

Measurement

PropertyValue
Measurement namebutler_sos_errors by default
Config settingButler-SOS.errorTracking.influxdb.measurementName
Write conditionButler-SOS.errorTracking.enable: true and Butler-SOS.errorTracking.influxdb.enable: true
GranularityOne point per failed poll attempt

Failed poll types

error_type valueSource pollerTrigger
HEALTH_APIHealth metrics pollingFailed call to Qlik Sense health check API
PROXY_APIUser session pollingFailed call to Qlik Sense proxy session API
APP_NAMES_EXTRACTApp name extractionFailed QRS poll when retrieving app names

Tags

TagPresent whenDescription
error_typeAlwaysDistinguishes health, proxy-session, and app-name poll failures
server_nameAlwaysPoll target name. For HEALTH_API and PROXY_API this is the configured server name; for APP_NAMES_EXTRACT it is the configured appNames.hostIP value
hostUsuallyHostname or IP that Butler SOS tried to poll
virtual_proxyPROXY_API onlyVirtual proxy prefix associated with the failed session poll

module and destination_host are generally not present for failed-poll events, because these points describe source polling failures rather than destination write failures.

Fields

FieldTypePresent whenDescription
error_countintegerAlwaysAlways 1
error_categorystringAlwaysDerived failure category such as timeout, connection_refused, or auth_error
error_codestringWhen presentLibrary or OS error code, for example ECONNREFUSED or ETIMEDOUT
http_statusintegerHTTP failuresHTTP status code returned by the failed poll request
request_urlstringAxios-based pollsRequest URL with query string removed
request_timeout_msintegerTimed requestsConfigured timeout for the failed request
remote_addressstringTCP connection failuresRemote IP that Butler SOS attempted to reach
remote_portintegerTCP connection failuresRemote TCP port that Butler SOS attempted to reach
syscallstringTCP connection failuresFailed syscall, usually connect

Example line protocol

text
butler_sos_errors,error_type=HEALTH_API,server_name=sense1,host=sense1.example.com error_count=1i,error_category="timeout",error_code="ECONNABORTED",request_url="https://sense1.example.com:4747/engine/healthcheck",request_timeout_ms=5000i

butler_sos_errors,error_type=PROXY_API,server_name=sense2,host=sense2.example.com,virtual_proxy=/sales error_count=1i,error_category="connection_refused",error_code="ECONNREFUSED",request_url="https://sense2.example.com:4243/qps/session",request_timeout_ms=5000i,remote_address="192.168.1.20",remote_port=4243i,syscall="connect"

butler_sos_errors,error_type=APP_NAMES_EXTRACT,server_name=qrs1.example.com,host=qrs1.example.com error_count=1i,error_category="auth_error",http_status=403i

Example queries

Count all failed polls in the last hour

sql
SELECT SUM("error_count")
FROM "butler_sos_errors"
WHERE "error_type" =~ /HEALTH_API|PROXY_API|APP_NAMES_EXTRACT/
  AND time > NOW() - 1h

Show failed proxy-session polls by server and virtual proxy

sql
SELECT SUM("error_count")
FROM "butler_sos_errors"
WHERE "error_type" = 'PROXY_API'
  AND time > NOW() - 24h
GROUP BY "server_name", "virtual_proxy"

Released under the MIT License.