Skip to main content

OIAnalytics®

Query time series data from OIAnalytics® SaaS application.

Connection Settings

Main Configuration

SettingDescriptionExample Value
Use OIAnalytics registrationUse pre-configured connection settings from OIAnalytics registration. Default: enabled.Enabled/Disabled
TimeoutDuration in seconds before connection failure is reported. Default: 30.30

Manual Configuration (when registration not used)

SettingDescriptionExample Value
HostHostname of the OIAnalytics® SaaS application.https://optimistik.oianalytics.com
Accept unauthorized certificateEnable if HTTP queries pass through a firewall that strips certificates.Enabled/Disabled

Authentication Settings

SettingDescriptionExample Value
Authentication methodAuthentication type for the connection.Access key/Secret, Azure AD (Client Secret), Azure AD (Certificate)
Access keyAccess key for Access key/Secret authentication.my_access_key
SecretSecret for Access key/Secret authentication.••••••••
Tenant IDAzure AD tenant identifier (for Azure AD methods).tenant-id-uuid
Client IDAzure AD client identifier (for Azure AD methods).client-id-uuid
Client SecretAzure AD client secret (for Azure AD Client Secret method).••••••••
CertificateCertificate selected from OIBus's Certificates page (for Azure AD Certificate method), not a raw file path.(selected from list)
ScopeOAuth scope (for Azure AD Certificate method).https://resource/.default

Proxy Configuration

SettingDescriptionExample Value
Use proxyRoute requests through a proxy server.Enabled/Disabled
Proxy URLURL of the proxy server.http://proxy.example.com:8080
Proxy usernameUsername for proxy authentication (if required).proxy_user
Proxy passwordPassword for proxy authentication (if required).••••••••

Group Settings

Items can be organised into groups. Each group defines a shared collection schedule and default throttling settings. Items in the same group are still fetched one at a time in sequence — the group simply provides common defaults that individual items can override.

SettingDescriptionExample Value
NameUnique label for the group within this connector.Group A
Scan modeSchedule used to collect all items in the group.Every 1 min
ThrottlingDefault throttling values (Max read interval, Read delay, Start time offset, End time offset, Recovery strategy) inherited by items in the group.3600, 200, 0, 0, oldest

Item Settings

Each item can be individually configured. Items inherit their scan mode and throttling defaults from their group, but each setting can be overridden per item by disabling Sync with group.

Throttling Settings

Throttling controls how OIBus paces historical data requests. These settings appear on each group (for connectors that support groups) or on each item (for single-item connectors). Items in a group can override the group defaults by disabling the Sync with group toggle.

SettingDescriptionExample Value
Max read intervalMaximum duration of each sub-query in seconds. Larger time ranges are automatically split into chunks not exceeding this value.3600
Read delayPause in milliseconds between consecutive sub-queries. Helps prevent server overload and manages rate limits.1000
Start time offsetMilliseconds added to the start of the query window (@StartTime). A negative value moves the start earlier, to capture late-arriving data from the previous interval — this is the old "Overlap" behavior. A positive value moves the start later instead, skipping that much of the window.-60000
End time offsetMilliseconds added to the end of the query window (@EndTime). A negative value pulls the end in earlier — useful for eventually-consistent sources where the very latest rows aren't reliable yet. A positive value extends the window later. If the resulting end is not after the effective start, the query is skipped for this run.0
Recovery strategyOrder in which OIBus catches up on a backlog of unqueried sub-intervals — e.g. after being stopped for a while, or on first run against a wide time range. From oldest to newest (default) processes the backlog chronologically. From newest to oldest queries the most recent sub-interval first, so up-to-date values become available immediately while older gaps are backfilled afterward.From oldest to newest

How Throttling Works

  1. Interval splitting — A 24-hour range with Max read interval = 3600 (1 hour) is split into 24 separate 1-hour sub-queries.
  2. Read delay — A pause is inserted between sub-queries to manage server load.
  3. Start/End time offset — With Start time offset = -60000 (-1 minute), a query for [10:00–11:00] actually requests [9:59–11:00], ensuring no late-arriving data is missed. End time offset shifts the other boundary the same way.
  4. Recovery strategy — Only matters when there's more than one sub-interval to catch up on. With From newest to oldest, the tracked instant only advances once every sub-interval in the backlog has been queried — this avoids skipping over not-yet-queried older intervals if OIBus restarts mid-catch-up.
Offsets apply to the full query range

Start/End time offset are applied once, to the start and end of the overall query window — not to the start of each individual sub-interval when a large range is split into chunks by Max read interval.

ScenarioMax read intervalRead delayStart time offset
Stable network, small datasets3600 (1 hour)5000 (none)
Unstable network1800 (30 min)20000 (none)
Large historical retrievals7200 (2 hours)10000 (none)
Real-time with occasional gaps900 (15 min)200-15000 (-15 sec)
Going deeper

For the reasoning behind these numbers — sizing Max read interval against real data volumes, the Read delay / Max read interval trade-off on a large backlog, and worked examples of Start vs. End time offset (including the batched multi-item case where items don't all flush at once) — see Tuning South History Call Settings.

Endpoint Settings

SettingDescriptionExample Value
EndpointAPI endpoint for HTTP requests/api/oianalytics/data/values

Query Parameters

Query Variables:

  • @StartTime: Initial execution time, updates to most recent timestamp from results
  • @EndTime: Current time (now()) or sub-interval end when queries are split
Query Splitting

Large time intervals are automatically divided into smaller chunks using:

  • Max read interval (from throttling settings)
  • Reduces server and network load
  • Improves data stream resilience
Repeated keys

Adding the same key several times sends it as an array of values in the request, instead of overwriting the previous one. This is useful for endpoints that accept multiple values for a single parameter, such as data-reference below.

Example: querying data values

To retrieve raw values for several data references over a time window, configure the item with the /api/oianalytics/data/values endpoint and the following query parameters:

KeyValue
from@StartTime
to@EndTime
aggregationRAW_VALUES
data-referenceCIP_Line_1_Acid_Tank_Level
data-referenceCIP_Line_1_Caustic_Tank_Level

Since data-reference is repeated, it is sent as data-reference=CIP_Line_1_Acid_Tank_Level&data-reference=CIP_Line_1_Caustic_Tank_Level, letting the endpoint return values for both tank levels in a single query.

CSV Serialization Options

SettingDescriptionExample Value
FilenameOutput filename pattern with variables: @ConnectorName, @CurrentDatedata_@ConnectorName.csv
DelimiterField separator characterCOMMA (,), SEMI_COLON (;), DOT (.), COLON (:), PIPE (|), SLASH (/), TAB (\t), NON_BREAKING_SPACE
CompressionEnable gzip compressionEnabled/Disabled
Output datetime formatFormat for datetime fields in CSVyyyy-MM-dd HH:mm:ss
Output timezoneTimezone for datetime valuesUTC or Europe/Paris
Filename Variables
  • @ConnectorName: Connector name
  • @CurrentDate: Current timestamp in yyyy_MM_dd_HH_mm_ss_SSS format (fixed format)
  • Datetime format setting doesn't affect filename timestamp