OpenBI Docs Buy

Monitor and the activity log

What the server did and is doing: the Monitor lists every refresh, publish, export and lake job; the engines answer the reports’ queries within limits you set; and the log files say the rest.

The Monitor

Choose Monitor in the portal’s rail, as the Power BI service’s monitoring hub. It lists the activities of the workspaces you are an Admin or a Member of, the newest first. The server’s administrators see every workspace under the domain they opened the server at, and the shared lakes’ jobs too. A shared lake’s maintenance and backups also show to the Admins and Members of the workspaces it is granted to.

The Monitor as a server administrator: 12 activities, the newest first, with Activity name, Status, Item type, Start time, Duration and Submitted by; publishes, refreshes and a lake load that succeeded, and a refresh of Budget that failed. Its details are open on the right: The refresh failed, why for the tables Budget and Forecast (their data sources have no credentials on this server), Copy error, and under General its name, type, status, job type, request ID, times, duration and who submitted it.
A row’s details: a failed activity says why, with Copy error.
ColumnShows
Activity nameThe item, or the lake
StatusIn progress, Succeeded or Failed
Item typeSemantic model or Lake, and the kind of job: Refresh (scheduled, scheduled and run again, on demand, run again, or via API, as the command line’s are), Lake load, Lake maintenance, Lake backup, Lake backup verify, Lake restore, Publish or Export
Start time, DurationWhen it began, and how long it took
Submitted byWho asked for it: a person, the schedule or the command line; a lake’s own upkeep shows as maintenance
LocationThe workspace

Narrow the list with Filter by keyword, Status, Activity, Start time (the last hour, 24 hours, 7 or 30 days) and, with more than one workspace, Location. It shows the newest 500 that match.

Click a row for its Details: why it failed, with Copy error; its request ID, start and end, who submitted it and where it ran (Run by: the server, and in a cluster its node); for a refresh, its data snapshot and that file’s SHA-256. Copy all copies the lot, for a support case, and Open its settings opens the model’s.

Each model’s own Refresh history is in its settings.

From the command line

OpenBI.Server.exe activities --status Failed --hours 24
OpenBI.Server.exe activities --workspace "<name>" --kind refresh
OpenBI.Server.exe history --workspace "<name>" --item "<item>" --lines 30

activities lists the Monitor’s activities, newest first: --kind takes the kinds above, in lower case (refresh, lakeload, publish, export …). history lists one model’s refreshes: when, how, how long, and why one failed. With --json, both answer in JSON, for a script or your agent.

Where activities are kept

The activities are records in the server’s database, with its other records (see Where the server keeps its records). Who did what, beyond these jobs, is in the audit log (see The audit log).

Engines

A report’s queries run in an engine for its model’s version. The first person to open a version starts its engine; it stays loaded while people use it. Server administrators see the engines running now, each with its memory, in the portal: Admin portal, Server health (see The portal).

SettingDefaultMeans
Engine:MaxEngines8How many engines run at once. The one used least recently stops first.
Engine:IdleTime30 minutesHow long an engine nobody uses stays loaded. The next request loads it again.
Engine:MemoryLimitMBa quarter of the machine’s memory, at least 2 GBEach engine’s ceiling. A query is refused at 80 % of it.
Engine:TotalMemoryMBhalf the machine’s memoryAll the engines together, so that what else runs on the machine keeps the rest.
Engine:StartTimeout5 minutesHow long a model may take to open.
Engine:QueryTimeoutauto: 225 secondsHow long one query may run (see Query time limit).
Engine:ResultCacheMB1024 MB, onThe memory each engine may keep queries’ answers in (see Answers kept).

A query past its time limit stops with an error, and so does one nested too deep: the engine goes on with the others. An engine that still fails ends alone, never the server, and the next request starts that engine again. An engine that stops answering its health check twice is stopped and started the same way. The server’s log says when each engine starts and stops, and why.

These settings are in appsettings.json beside the program and settings.json in the data folder, which overrides it. The environment’s Engine__… variables override both.

Queries at once

Each engine runs at most so many queries at once; the others wait their turn, in the order they came, and a cheap one, such as a slicer’s list, passes the line. Past as many queries as there are cores, each one runs slower and together they get less done, so a line is faster for everyone. The limits are Analysis Services’ own, under OpenBI’s names:

engine limitsDefaultMeansAnalysis Services
--max-queriesauto: from the machine’s cores and memoryThe queries one engine runs at onceThreadPool\Query\MaxThreads
--max-queries-per-userauto: the fast cores, at most max queriesOne person’s queries at once in one engine: a page of many visuals takes turns with everyone else’sMaxThreadsPerClient
--connection-poolauto: twice max queriesThe server’s connections to one engine for queries; requests past them wait in the serverConnectionPoolSize
--idle-time30mHow long an engine nobody uses stays loaded (1 minute to 30 days)none: a database stays loaded
--query-timeoutauto: 225 secondsHow long one query may run before its engine stops it (see Query time limit)ServerTimeout (3600 s)
--result-cache1024 MB, onThe memory each engine may keep queries’ answers in, or off (see Answers kept)none: its storage engine’s cache only

Each count is a number, 0 for no limit, or auto; the idle time and the query time limit are durations. The limits are per engine, not per server: two busy models share the machine’s cores. engine limits alone shows each value and where it comes from; with options, it writes them to settings.json, kept through upgrades, and the service takes them when it restarts:

OpenBI.Server.exe engine limits
OpenBI.Server.exe engine limits --max-queries 16 --max-queries-per-user 4 --connection-pool 64 --idle-time 10h
OpenBI.Server.exe service restart

At installation on Windows, the MSI takes them too: MAXQUERIES=16 MAXQUERIESPERUSER=4 CONNECTIONPOOL=64. On a Mac, sudo openbi-server engine limits …, then sudo openbi-server service restart.

Query time limit

New in 0.1.43 A query runs at most 225 seconds by default, as the Power BI service’s report visuals do. Past its limit, its engine stops it with Analysis Services’ words, “The XML for Analysis request timed out before it was completed. Timeout value: 225 sec.”, and goes on with the other queries. The time counts from when the query came, so one whose time ran out while it waited its turn isn’t run.

OpenBI.Server.exe engine limits --query-timeout 5m
OpenBI.Server.exe service restart

--query-timeout takes a duration such as 90s, 5m or 1h (at most a day), 0 or none for no limit, or auto for the engine’s own 225 seconds. It is Engine:QueryTimeout in settings.json, and the service takes it when it restarts. engine limits shows it as query timeout.

  • A request may ask for less, never more. Excel’s own time limit is kept: a connection whose Timeout property asks for fewer seconds stops its queries then. An AI agent’s query has the server’s shorter limit for agents (see Limits).
  • A page that no longer waits stops its queries. When a report page is closed or reloaded, or its filters change and a query isn’t asked again, the page cancels its queries, and the engine stops them, a model’s own data as well as a live one’s.

Answers kept

New in 0.1.44 Each engine keeps the answers to the queries it runs, and gives one again, at once, when the same person sends the same query, as the Power BI service’s query caching does. It is on by default: with Engine:ResultCacheMB not set, each engine may keep 1024 MB of answers, and never more than an eighth of its memory limit (Engine:MemoryLimitMB), counted with what its queries take.

  • Each person’s answers are their own, kept by the person, their roles and their access: nobody is given an answer kept for someone else.
  • Never kept: an answer that reads the clock’s time, chance or results kept apart from the model, such as NOW, UTCNOW, RAND or PREDICT, through measures, calculation items, detail rows and roles too. One that reads TODAY is kept for that day only (UTCTODAY: that UTC day).
  • New data, new answers. After a refresh, the model’s engine starts again on the new data, so no answer kept from before is given.
  • A kept answer says so: the header X-OpenBI-Cache: hit, and "cached": true with its own timings.
OpenBI.Server.exe engine limits --result-cache 256
OpenBI.Server.exe engine limits --result-cache off
OpenBI.Server.exe service restart

--result-cache takes the MB each engine may keep, a whole number up to 65536, or off (0 too) for none. It is Engine:ResultCacheMB in settings.json, and the service takes it when it restarts. engine limits shows it as result cache, such as default (on): 1024 MB per engine; each person’s answers their own, and doctor says when a value isn’t one it takes, using the default then.

Logs

The services write their logs in the data folder’s logs, a file a day, kept 30 days:

FileOf
server-<yyyymmdd>.logOpenBI Server, and the commands that work on its records as the service does
accounts-<yyyymmdd>.logOpenBI Accounts, and the accounts commands that change something

Each line is one event: its time in UTC, its level, where it comes from, and what happened, such as an engine started or stopped, a refresh failed or an e-mail not sent. The folder is C:\ProgramData\OpenBI Server\logs on Windows and /Library/Application Support/OpenBI Server/logs on a Mac. To read the newest lines:

OpenBI.Server.exe logs --lines 100
OpenBI.Server.exe accounts logs --lines 100

Both show 60 lines without --lines. When a service doesn’t start: on Windows, Event Viewer, Windows Logs, Application, under the sources OpenBI Server and OpenBI Accounts; on a Mac, launchd-server.log and launchd-accounts.log in the same logs folder.

Frequently asked questions

Why don’t I see a workspace’s activities?

The Monitor shows the workspaces you are an Admin or a Member of. A Contributor or Viewer sees none; ask a workspace Admin, or a server administrator, who sees every workspace of the domain.

Why is a report slow the first time in the morning?

Its engine stopped after 30 minutes unused, and the first request loads the model again. Raise --idle-time (see Queries at once).

Last updated · OpenBI Server 0.1.46