Package-level declarations

Types

Link copied to clipboard
data class ActiveMeasurement(val id: Int, val name: String = "M-", val startTime: Long, val startEventIndex: Int, val runs: List<RunSummary> = listOf(), val activeRun: ActiveRun? = null)

An active measurement is something a session might potentially have. Compared to FinishedMeasurement, the active measurement has mutable fields for updating the runs and meter states. Use the routine 'finish' to produce a FinishedMeasurement.

Link copied to clipboard
data class ActiveRun(val id: Int = 0, val startTime: Long, val startEventIndex: Int)

Currently active run. Otherwise immutable, but the meter states are internally mutable.

Link copied to clipboard
data class ActiveSource(val source: DataSource, val name: String, val description: String? = null) : Comparable<ActiveSource>

Entries for active data sources, i.e. those we want to focus on in the measurement session.

Link copied to clipboard
data class AssociatedDataSource(val dataSource: MeterDataSource, val unit: String)

Nodes consist of functional units (NodeSpecs.units) Some units can be measured with a meter. This structure represents such an association.

Link copied to clipboard
data class Benchmark(val name: String, val palette: List<String>, val modes: List<ReportMode>, val cases: List<ReportCase>)

Description of a benchmark suite. Consists of multiple cases.

Link copied to clipboard
data class BenchmarkCommand(val benchmark: String, val count: Long = 5000) : Command

Runs a benchmark.

Link copied to clipboard
data class ClearSessionsCommand(val allSessions: Boolean = false) : Command

Clear closed / all sessions.

Link copied to clipboard
data class CloseEntry(val summary: SessionSummary, val save: Boolean) : LogFileEntry
Link copied to clipboard
sealed interface Command

Represents an abstract command for controlling an instance & session. The commands are not recorded in the event log.

Link copied to clipboard
data class ConfigureMeasurementEvent(val nanoTime: Long = System.nanoTime(), val systemTimestamp: Long = System.currentTimeMillis(), val name: String) : SessionEvent

Defines an event for configuring the measurement. See https://tech.utugit.fi/soft/tools/power/doc/manual/usage/intro/

Link copied to clipboard
data class ConfigureMeterEvent(val nanoTime: Long = System.nanoTime(), val systemTimestamp: Long = System.currentTimeMillis(), val meter: String, val channel: String, val name: String?, val description: String? = null) : SessionEvent

Defines an event for configuring a meter. See https://tech.utugit.fi/soft/tools/power/doc/manual/usage/intro/

Link copied to clipboard
data class ConfigureResourceEvent(val nanoTime: Long = System.nanoTime(), val systemTimestamp: Long = System.currentTimeMillis(), val unit: String, val resource: String, val name: String?, val description: String? = null) : SessionEvent

Defines an event for configuring a meter. See https://tech.utugit.fi/soft/tools/power/doc/manual/usage/intro/

Link copied to clipboard
data class ConfigureResourceFiltersEvent(val nanoTime: Long = System.nanoTime(), val systemTimestamp: Long = System.currentTimeMillis(), val additions: List<String> = listOf(), val removals: List<String> = listOf()) : SessionEvent

Defines an event for configuring the resource filters See https://tech.utugit.fi/soft/tools/power/doc/manual/usage/data/

Link copied to clipboard
data class Coordinate(val x: Long, val y: Long) : Comparable<Coordinate>

Represents a coordinate pair (e.g. for scatter graphs).

Link copied to clipboard
sealed interface DataSource : Comparable<DataSource>

Represents a data source for the analysis of measurements.

Link copied to clipboard
data class DeleteLogsCommand(val path: String? = null, val instance: String? = null) : Command

Delete one / all log directories in the instance.

Link copied to clipboard
sealed interface Event
Link copied to clipboard
data class EventEntry(val event: SessionEvent, val trigger: TriggerEvent?) : LogFileEntry
Link copied to clipboard
data class GenericFlags(val logMeterEvents: Boolean = true, val implicitSession: Boolean = false, val allowOriginHeader: Boolean = false, val modeStrictAPI: Boolean = true, val modeLowMemory: Boolean = false, val modeInfo: Boolean = false, val modeDebug: Boolean = false, val modeVerbose: Boolean = false, val modeInteractive: Boolean = true, val deviceHotplug: Boolean = true, val mqttClient: Boolean = false, val httpServer: Boolean = true, val telnetServer: Boolean = false, val sessionLogs: Boolean = true, val nativeDrivers: Boolean = true)

Application wide configuration flags.

Link copied to clipboard

Plans for calculating generic statistics.

Link copied to clipboard
data class GlobalConfiguration(val flags: GenericFlags = GenericFlags(), val session: SessionConfiguration = SessionConfiguration(), val name: String = "PowerGoblin instance", val plot: PlotConfiguration = PlotConfiguration(), val statusPeriod: Long? = 1000, val logPath: String = "logs/", val telnetPort: Int = 9000, val httpContentPath: String = "web/", val httpPort: Int = 8080, val mqttHost: String = "localhost", val mqttPort: Int = 1883, val mqttTopicPrefix: String, val simulatedCount: Int = 0)

Application wide configuration.

Link copied to clipboard
data class GraphReadingInput(val measurement: Int, val source: DataSource, val run: Int, val coordinate: Coordinate)

Represents the input for processed data.

Link copied to clipboard
data class HeartbeatMessage(val timestamp: Long = System.currentTimeMillis(), val latestEvent: String, val message: String, val instanceStatus: InstanceShortSummary, val status: ServiceStatus)

Sent periodically by the server. If something new has occurred, status=Event, otherwise status=Timeout

Link copied to clipboard
data class InstanceBenchmarkEvent(val nanoTime: Long = System.nanoTime(), val systemTimestamp: Long = System.currentTimeMillis(), val id: String, val benchmark: String, val result: String, val success: Boolean = true) : InstanceEvent, StatusEvent

An event signaling that the PowerGoblin instance executed a benchmark.

Link copied to clipboard
sealed interface InstanceEvent : Event
Link copied to clipboard
data class InstanceReconfigureEvent(val nanoTime: Long = System.nanoTime(), val systemTimestamp: Long = System.currentTimeMillis(), val id: String, val oldMeters: List<String>, val busyMeters: List<String>, val newMeters: List<String>) : InstanceEvent, StatusEvent

An event signaling that the PowerGoblin instance was reconfigured (discovery of new meters)

Link copied to clipboard
data class InstanceSessionClosedEvent(val nanoTime: Long = System.nanoTime(), val systemTimestamp: Long = System.currentTimeMillis(), val id: String, val sessionId: Int) : InstanceEvent, StatusEvent

An event signaling that a measurement session was closed on this instance.

Link copied to clipboard
data class InstanceSessionEvent(val nanoTime: Long = System.nanoTime(), val systemTimestamp: Long = System.currentTimeMillis(), val id: String, val sessionId: Int, val event: SessionEvent) : InstanceEvent, StatusEvent

A wrapper event signaling that a session related event was executed (measurement / run was started / stopped, meter set on / off).

Link copied to clipboard
data class InstanceSessionStartedEvent(val nanoTime: Long = System.nanoTime(), val systemTimestamp: Long = System.currentTimeMillis(), val id: String, val sessionId: Int, val summary: SessionSummary) : InstanceEvent, StatusEvent

An event signaling that a new measurement session was started on this instance.

Link copied to clipboard
data class InstanceShortSummary(val sessions: List<SessionEntry>, val meters: List<MeterEntry>, val services: List<Service>, val logFileCount: Long, val busyLogCount: Int, val subsystems: List<SubsystemEntry>, val meterSources: List<MeterSourceEntry>, val tasks: List<TaskDescription>, val nodes: List<NodeEntry>, val name: String)

Summary data structure for the application instance. Contains the mutable features such as session and meter names, uptime, addresses, file count, in addition to the immutable specifications.

Link copied to clipboard
data class InstanceSpecs(val appName: String, val appVersion: String, val launchTime: String)

Immutable specifications for the instance. Used for calculating the instance id.

Link copied to clipboard
data class InstanceStartedEvent(val nanoTime: Long = System.nanoTime(), val systemTimestamp: Long = System.currentTimeMillis(), val id: String, val summary: InstanceSummary) : InstanceEvent, StatusEvent

An event signaling that the PowerGoblin instance was started.

Link copied to clipboard
data class InstanceStoppedEvent(val nanoTime: Long = System.nanoTime(), val systemTimestamp: Long = System.currentTimeMillis(), val id: String) : InstanceEvent, StatusEvent

An event signaling that the PowerGoblin instance was stopped.

Link copied to clipboard
data class InstanceSummary(val sessions: List<SessionEntry>, val meters: List<MeterEntry>, val services: List<Service>, val logFileCount: Long, val busyLogCount: Int, val subsystems: List<SubsystemEntry>, val meterSources: List<MeterSourceEntry>, val tasks: List<TaskDescription>, val nodes: List<NodeEntry>, val name: String, val webService: Service, val specs: InstanceSpecs, val osData: OSData, val id: String = specs.id(), val configuration: GlobalConfiguration, val configurationDescription: List<String> = configuration.describe())

Summary data structure for the application instance. Contains the mutable features such as session and meter names, uptime, addresses, file count, in addition to the immutable specifications.

Link copied to clipboard
data class InterfaceAddresses(val interfaceName: String, val addresses: List<String>)

A simple structure for enumerating interfaces.

Link copied to clipboard
sealed interface LogFileEntry

Represents a log file event.

Link copied to clipboard
data class MailConfig(val username: String, val password: String, val from: String, val server: String, val port: Int = 587, val replyTo: String? = null, val userAgent: String? = null, var retries: Int = 5, var retryDelay: Int = 1000)

Configuration for Jakarta Mail.

Link copied to clipboard
data class MeasurementScatterGraph(val id: Int, val name: String, val sources: List<SourceScatterGraph>)

Represents a collection of scatter plots for a session. Since different sources may have been used for different measurements, we first determine the measurement, then the source, then runs.

Link copied to clipboard
data class MeasurementStatistics(val summary: MeasurementSummary, val meters: List<QuantityStatistics>, val resources: List<QuantityStatistics>, val others: List<QuantityStatistics>)

A structure for holding

Link copied to clipboard
data class MeasurementSummary(val id: Int, val name: String, val startTime: Long, val stopTime: Long, val startEventIndex: Int, val eventCount: Int, val runs: List<RunSummary>, val statistics: List<QuantityStatistics> = listOf(), val errorCount: Long = runs.sumOf(RunSummary::errorCount))

Measurement represents a single test case that can be run multiple times for further statistical analysis. The runs are expected to behave in a more or less identical way. Statistical methods can be used for determining reasonable range of values for power, duration etc.

Link copied to clipboard
data class Message(val title: String, val content: String, val recipients: List<String> = listOf(), val cc: List<String> = listOf(), val bcc: List<String> = listOf(), val attachments: List<<Error class: unknown class>> = listOf())

Represents an email message.

Link copied to clipboard
data class MessageEvent(val nanoTime: Long = System.nanoTime(), val systemTimestamp: Long = System.currentTimeMillis(), val unit: String, val message: String? = null) : SessionEvent

Defines a message event.

Link copied to clipboard
data class MeterDataSource(val meter: String, val channel: String) : DataSource
Link copied to clipboard
data class MeterEntry(val id: String, val type: String, val description: String, val present: Boolean, val associatedSession: String?)

A brief entry for listing meters in the instance summary.

Link copied to clipboard
sealed interface MeterEvent : SessionEvent

Events generated by the power meters (handlers) See https://tech.utugit.fi/soft/tools/power/doc/manual/usage/intro/

Link copied to clipboard
data class MeterReadEvent(val meterReading: MeterReading, val nanoTime: Long = meterReading.nanoTime, val systemTimestamp: Long = meterReading.systemTimestamp, val meter: String = meterReading.meter) : MeterEvent

Defines an event for reporting a failed measurement event

Link copied to clipboard
data class MetersAddCommand(val session: Int? = null, val meters: List<String> = listOf()) : SessionCommand

Adds a meter to a session.

Link copied to clipboard
data class MeterSourceEntry(val name: String, val recognizedTypes: List<String>)

A brief entry for listing meter sources in the instance summary.

Link copied to clipboard
data class MetersRemoveCommand(val session: Int? = null, val meters: List<String> = listOf()) : SessionCommand

Removes a meter from a session.

Link copied to clipboard
data class MetersSetCommand(val session: Int? = null, val meters: List<String> = listOf()) : SessionCommand

Sets the meters in a session. Removed ones appear as dummies.

Link copied to clipboard

Plans for calculating meter statistics.

Link copied to clipboard
data class MetersToggleCommand(val meters: List<String> = listOf()) : Command

Toggle the given meters on/off.

Link copied to clipboard
data class MQTTGenericMessage(val content: String) : MQTTMessage

Generic MQTT message with text content.

Link copied to clipboard
sealed interface MQTTMessage

The base class for MQTT message classes to be serialized

Link copied to clipboard
data class MQTTMessageEntry(val msg: MQTTMessage, val topic: String, val incoming: Boolean = false, val timeStamp: Long = System.currentTimeMillis())

MQTT message entry for the message log. Basically a bridge object between MQTTMessages and message log.

Link copied to clipboard
data class NodeClearLogCommand(val node: String) : NodeCommand

Clear the log associated with a node/agent.

Link copied to clipboard
sealed interface NodeCommand : Command

Subtype of commands that are associated with a specific node.

Link copied to clipboard
data class NodeEnqueueCommand(val node: String, val uniqueId: String, val command: AgentCommand) : NodeCommand

Enqueues an agent command.

Link copied to clipboard
data class NodeEntry(val name: String, val associatedDataSources: List<String>, val isController: Boolean, val hasAgent: Boolean)

A brief entry for listing nodes in the instance summary.

Link copied to clipboard
data class NodeListCommandsCommand(val node: String, val clearCommands: Boolean = true) : NodeCommand

Queries and clears the commands enqueued for a node/agent.

Link copied to clipboard
data class NodeMessageAppendCommand(val node: String, val message: String, val clear: Boolean = false) : NodeCommand

Appends a message from an agent/node.

Link copied to clipboard
data class NodeRegisterCommand(val node: NodeSpecs) : Command

Registers an agent/node.

Link copied to clipboard
data class NodeRemoveCommand(val node: String) : NodeCommand

Removes the agent/node.

Link copied to clipboard
data class NodeStatusCommand(val node: String, val status: AgentStatus) : NodeCommand

Updates the status of an agent/node.

Link copied to clipboard
data class NodeSummary(val specs: NodeSpecs, val associatedDataSources: List<AssociatedDataSource>, val isController: Boolean, val hasAgent: Boolean, val status: AgentStatus? = null, val messages: String = "", val queueSize: Int = 0, val timestamp: Long = 0)

A snapshot of the live node state.

Link copied to clipboard
data class OSData(val loadAvg: Double = 0.0, val totalMemory: Long = 0, val freeMemory: Long? = 0)

Operating system and background server related specs / stats.

Link copied to clipboard
data class PlotConfiguration(val dockerImage: String = "registry.gitlab.utu.fi/tech/soft/thesis/builder:latest", val enableDocker: Boolean = false, val renderingTimeOut: Long = 120)

Global application configuration for plot generation.

Link copied to clipboard
data class QuantityStatistics(val dataSource: DataSource?, val variable: StatisticsVariable, val quantity: String, val unit: String, val min: Double, val max: Double, val avg: Double, val stdDeviation: Double)

A structure for holding

Link copied to clipboard
data class ReconfigureMetersCommand(val instance: String? = null) : Command

Reconfigure instance's meters.

Link copied to clipboard
Link copied to clipboard
data class ReportCase(val id: String)

Description of a benchmark case. The id is just a relative file path and cannot contain '../'.

Link copied to clipboard
data class ReportMode(val id: String, val label: String, val default: Boolean, val visibleSections: List<Int>, val expandedSections: List<Int>)
Link copied to clipboard
data class ReportSection(val id: Int, val name: String, val renderedContent: String)

Represents a document section in the report.

Link copied to clipboard
data class ReportTemplate(val template: String, val frontMatter: Variables, val sections: List<ReportSection>)

Represents the template document in a more refined form.

Link copied to clipboard
data class ReportTemplateEvent(val nanoTime: Long = System.nanoTime(), val systemTimestamp: Long = System.currentTimeMillis(), val template: String) : SessionEvent

Defines a report template for a session.

Link copied to clipboard
data object ResetEntry : LogFileEntry
Link copied to clipboard
data class ResourceConsumptionDumpEvent(val nanoTime: Long = System.nanoTime(), val systemTimestamp: Long = System.currentTimeMillis(), val unit: String, val checksum: String, val eventCount: Int) : SessionEvent

Defines an event describing resource consumption.

Link copied to clipboard
data class ResourceConsumptionEvent(val nanoTime: Long = System.nanoTime(), val systemTimestamp: Long = System.currentTimeMillis(), val resourceTimestamp: Long? = null, val unit: String, val resource: String, val value: Double) : ResourceEvent

Defines an event describing an ad-hoc resource consumption.

Link copied to clipboard
data class ResourceDataSource(val unit: String, val resource: String) : DataSource

Represents a logged resource source.

Link copied to clipboard
sealed interface ResourceEvent : SessionEvent

Events generated by the resource sources. See https://tech.utugit.fi/soft/tools/power/doc/manual/usage/intro/

Link copied to clipboard
data class RunScatterGraph(val run: Int, val coordinates: List<Coordinate>)

Represents a single run and its data

Link copied to clipboard
data class RunSummary(val id: Int, val startTime: Long, val stopTime: Long, val startEventIndex: Int, val eventCount: Int, val meterStates: List<MeterState>)

Run represents a single test run of a test case. The runs are expected to behave in a more or less identical way. The runs contain a list of summaries for each associated power meter.

Link copied to clipboard
data class ScatterGraph(val dataSources: List<DataSource>, val specs: List<SourceSpecification>, val measurements: List<MeasurementScatterGraph>)

Scattergraph \__ MeasurementScatterGraph (id, name, sources) \__ SourceScatterGraph (source, runs) \__ RunScatterGraph (run, coordinates) \__ Coordinate (x, y)

Link copied to clipboard
data class SendMqttCommand(val topic: String, val content: String) : Command

Send a MQTT message.

Link copied to clipboard
data class Service(val name: String, val addresses: List<ServiceAddress>, val status: String? = null)

A simple structure for enumerating services provided by an instance.

Link copied to clipboard
data class ServiceAddress(val host: String, val port: Int, val interfaceName: String, val qrCodeApi: String? = null)

A simple structure for enumerating address-port-interface triples.

Link copied to clipboard
Link copied to clipboard
data class SessionCloseCommand(val session: Int? = null) : SessionCommand

Close the session.

Link copied to clipboard
sealed interface SessionCommand : Command

Subtype of commands that are associated with a specific session.

Link copied to clipboard
data class SessionConfiguration(val name: String = "default", val author: String = "user", val description: String = "Generic measuring session", val resourceFilters: List<String> = listOf( "memory-used", "memory-free", "memory-cached", "memory-buffered", "if_octets", "cpu-0-cpu-user", "cpu-0-cpu-system", "cpu-0-cpu-idle" ), val autoSave: Boolean = true, val summarizeRun0: Boolean = false, val writeDumps: Boolean = true, val writeReport: Boolean = true, val writeSpreadsheet: Boolean = true, val writePlotScripts: Boolean = false, val writePlots: Boolean = false)

Session configuration.

Link copied to clipboard
data class SessionCounters(val totalEvents: Int = 0, val loggedEvents: Int = 0, val loggedMeterEvents: Int = 0, val loggedResourceEvents: Int = 0, val meterErrors: Int = 0, val triggerEvents: Int = 0)

Collection of session related counters.

Link copied to clipboard
data class SessionEntry(val id: Int, val name: String)

A brief entry for listing sessions in the instance summary.

Link copied to clipboard
sealed interface SessionEvent : Event

This class is the base of a class hierarchy that defines events occurring in the measurement session. All events carry a timestamp and are associated with some session.

Link copied to clipboard
data class SessionExportMailCommand(val session: Int? = null, val server: String? = null, val user: String, val password: String, val from: String? = null, val recipients: String? = null, val contents: String? = null) : SessionCommand

Sends an email message with session summary.

Link copied to clipboard
Link copied to clipboard
data class SessionLiveData(val id: Int, val name: String, val author: String, val description: String, val startTime: String, val stopTime: String?, val validationTime: String?, val counters: SessionCounters, val measurements: List<MeasurementSummary>, val resourceSources: List<ResourceDataSource>, val variables: Variables, val timeSync: List<TimeSync>, val activeSources: List<ActiveSource>, val version: String, val resourceFilters: List<String>, val meterStates: List<MeterState>, val meterSpecs: List<PowerMeter>, val activeMeasurement: ActiveMeasurement?, val writingLogs: Boolean?, val logPath: String? = null, val flags: List<SessionFlag>, val nodes: List<NodeEntry>, val planId: String?)

Live session data contains the rapidly changing session data that can be serialized as JSON messages for communicating with different frontends via an external API.

Link copied to clipboard
data class SessionLogEntry(val date: String?, val summary: SessionSummary?, val totalSize: Long, val dir: String, val busy: Boolean, val files: List<SessionLogFile>)

Represents a logged session.

Link copied to clipboard
data class SessionLogFile(val name: String, val date: String)

Represents a single log file in the logged session.

Link copied to clipboard
data class SessionMergeCommand(val session: Int?, val otherSession: Int) : Command

Merge two open sessions. The otherSession needs to be chronologically later session (both start and stop times) after the first's stop time. Both sessions need to be closed.

Link copied to clipboard
data class SessionMeterGraphCommand(val session: Int? = null, val measurement: Int?, val meter: String?, val channel: String?) : SessionCommand
Link copied to clipboard
data class SessionReconstructCommand(val path: String) : Command

Reconstruct the session.

Link copied to clipboard
data class SessionRemoveCommand(val session: Int? = null) : SessionCommand

Remove the session.

Link copied to clipboard
data class SessionResetCommand(val session: Int? = null) : SessionCommand

Reset the session (measurements, counters).

Link copied to clipboard
data class SessionResourceGraphCommand(val session: Int? = null, val measurement: Int?, val unit: String?, val resource: String?) : SessionCommand
Link copied to clipboard
data class SessionRestoreCommand(val path: String) : Command

Restore the session from disk.

Link copied to clipboard
data class SessionStartCommand(val template: String? = null) : Command

Start a new session.

Link copied to clipboard
data class SessionStatistics(val measurements: List<MeasurementStatistics>)

A structure for holding all statistics for a session.

Link copied to clipboard
data class SessionStatisticsCommand(val session: Int? = null) : SessionCommand
Link copied to clipboard
data class SessionStoreCommand(val session: Int? = null) : SessionCommand

Store the session to disk.

Link copied to clipboard
data class SessionSummary(val configuration: GlobalConfiguration, val startTime: String, val stopTime: String?, val validationTime: String? = null, val counters: SessionCounters, val measurements: List<MeasurementSummary>, val resourceSources: List<ResourceDataSource>, val variables: List<KeyValues>, val timeSync: List<TimeSync>, val activeSources: List<ActiveSource>, val version: String, val resourceFilters: List<String>, val resourceDumps: List<String>, val meterSpecs: List<PowerMeter>, val meterStates: List<MeterState>, val triggerEvents: List<TriggerEvent>, val reportTemplate: ReportTemplate?, val nodes: List<NodeSummary>)

Summary of a finished session. Contains the necessary data for later restoring the session from a stored session dump file.

Link copied to clipboard
data class SessionValidateCommand(val session: Int? = null) : SessionCommand

Close the session.

Link copied to clipboard
data class SessionVariablesEvent(val nanoTime: Long = System.nanoTime(), val systemTimestamp: Long = System.currentTimeMillis(), val variables: Variables) : SessionEvent

Defines an event for configuring the session See https://tech.utugit.fi/soft/tools/power/doc/manual/usage/intro/

Link copied to clipboard
data class SetSimulatedMeterCountCommand(val count: Int = 5, val instance: String? = null) : Command

Configure the number of simulated meters in the instance.

Link copied to clipboard
data class SetTimeSyncEvent(val nanoTime: Long = System.nanoTime(), val systemTimestamp: Long = System.currentTimeMillis(), val unit: String, val localTime: Long = systemTimestamp, val remoteTime: Long) : SessionEvent

Defines an event describing a time synchronization point. The format for remote time is date +%s%N (unix cli utility)

Link copied to clipboard
data class ShutdownApplicationCommand(val timeOut: Long = 1000, val instance: String? = null) : Command

Shut down the instance.

Link copied to clipboard
data class SourceScatterGraph(val source: DataSource, val runs: List<RunScatterGraph>)

Represents a single data source and all its runs in a measurement

Link copied to clipboard
data class SourceSpecification(val source: DataSource, val variable: StatisticsVariable)

Describes the data sources and the associated statistics variable.

Link copied to clipboard

Classification of variables.

Link copied to clipboard
class StatisticsHelper(val values: List<Double>)

Helper for calculating min / max / average / standard deviation.

Link copied to clipboard
interface StatisticsPlan

Plans for calculating statistics.

Link copied to clipboard
data class StatisticsVariable(val category: StatisticsCategory, val quantity: String, val unit: String, val baseUnit: String, val scale: Int = 0, val binary: Boolean = false)

Metadata for a statistics variable.

Link copied to clipboard
sealed interface StatusEvent : InstanceEvent
Link copied to clipboard
data class StoreEntry(val summary: SessionSummary) : LogFileEntry
Link copied to clipboard
data class SubsystemEntry(val name: String, val status: String)

A brief entry for listing subsystems in the instance summary.

Link copied to clipboard
data class SystemAppCommand(val command: String, val arguments: List<String> = listOf()) : Command

Run a diagnostic system application. The command represents any kind of command and its arguments. It's up to the accepting implementation to interpret and validate the commands.

Link copied to clipboard
data class TaskDescription(val id: Int, val name: String, val description: String? = null, val status: TaskStatus)

Structure representing an asynchronous task.

Link copied to clipboard
data class TaskFail(val result: String, val duration: Long? = null) : TaskStatus
Link copied to clipboard
data class TaskRunning(val status: String? = null) : TaskStatus
Link copied to clipboard
sealed class TaskStatus

The status of the task.

Link copied to clipboard
data class TaskSuccess(val result: String, val duration: Long? = null) : TaskStatus
Link copied to clipboard
data class TimeSync(val unit: String, val remote: Long, val diff: Long)

Represents a time difference between the instance and the other unit for synchronizing event timestamps.

Link copied to clipboard
data class TriggerEvent(val nanoTime: Long = System.nanoTime(), val systemTimestamp: Long = System.currentTimeMillis(), val triggerType: TriggerType, val measurement: Int? = null, val run: Int? = null, val measurementStart: Long? = null, val runStart: Long? = null) : SessionEvent

Defines a trigger event indicating a status change.

Link copied to clipboard

Triggers are special events that update measurement/run counters, report the system state etc.

Link copied to clipboard
data class Variables(val values: List<KeyValues> = listOf())

A container for variables.

Functions

Link copied to clipboard
Link copied to clipboard