Skip to content

Emit named measurement spans that the whole core shares #61

Description

@iderex

The four published numbers are met or missed inside this repository, which is why
the kickoff puts the instrumentation here. Instrumentation added per subsystem
gives four subsystems measuring four slightly different things, and the numbers
then cannot be added up.

What this produces

One measurement facility every subsystem uses, with named spans taken from the
record in #8 so the names are decided once.

A monotonic clock that a test can control, so that a timing test takes
microseconds and produces the same answer on a loaded machine as on an idle one.

A cost near zero when nobody is listening, since instrumentation that slows the
thing it measures reports on itself.

Spans that a client can subscribe to, because the whole numbers need the client's
half and it cannot supply it without knowing when the core's half ended.

Done when

Every span named in #8 is emitted by the code that owns it, the suite drives
them through a controlled clock, and a test proves the overhead with no
subscriber is below a stated bound. Blocked on #8, #9, and #102, which decides
the clock a span is measured against and what the controlled clock in the suite
is allowed to move.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

architectureShape of the core: boundaries, interfaces, contractsblocked-on-dependencyWaiting on another issue or on a state of the tree, not on a personperformanceThe speed budget and what measures it

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions