fabaccess-bffh/runtime/console-api/schema/async_ops.capnp
2023-05-05 13:41:31 +02:00

60 lines
1.9 KiB
Cap'n Proto

@0xda4fc7f2ce698a66;
using Common = import "common.capnp";
struct Update {
newAsyncOps @0 :List(AsyncOp);
# List of new async ops that were crated since the last Update.
statsUpdate @1 :Common.IntMap(Stats);
# All async op stats that have changed since the last Update was sent.
droppedEvents @2 :UInt64;
# Count of how many async op events were not recorded because the applications event buffer was
# at capacity.
#
# If everything is working normally, this is 0. If it is not that may inidcate that some data is
# missing from this update and it may be necessary to increase the number of events buffered by
# the application to ensure that data loss is avoided.
#
# If the application's instrumentation ensures reliable delivery of events, this will alway be 0
}
struct AsyncOp {
id @0 :Common.Id;
# The async op's ID.
#
# This uniquely identifies this op across all *currently live* ones.
metadata @1 :Common.MetaId;
# The numeric id of the op's Metadata
#
# This identifies the `Metadata` that describes the `tracing` span
# corresponding to this async op. The metadata for this ID will have been sent
# in a prior `RegisterMetadata` message.
source @2 :Text;
# The source of this async operation. Most commonly this should be the name of the method where
# the instantiation of this op has happened.
parentAsyncOp @3 :Common.Id;
# The ID of the parent async op.
#
# This field is only set if this async op was created while inside of another async op.
resourceId @4 :Common.Id;
# The resource's ID
}
struct Stats {
createdAt @0 :Common.Timestamp;
droppedAt @1 :Common.Timestamp;
task @2 :Common.Id;
# The ID of the task currently awaiting on this op
pollStats @3 :Common.PollStats;
attributes @4 :List(Common.Attribute);
}