Crate console_api
source ·Expand description
tokio-console API
🛰 Tonic bindings for the tokio-console
protobuf wire format.
Website | Chat | API Documentation
Overview
This crate contains generated protobuf bindings for the tokio-console
wire
format. The wire format is used to export diagnostic data from instrumented
applications to consumers that aggregate and display that data.
tokio-console
is a debugging and profiling tool for asynchronous Rust
applications, which collects and displays in-depth diagnostic data on the
asynchronous tasks, resources, and operations in an application. The console
system consists of two primary components:
- instrumentation, embedded in the application, which collects data from the async runtime and exposes it over the console’s wire format
- consumers, such as the
tokio-console
command-line application, which connect to the instrumented application, receive telemetry data, and display it to the user
The wire format protobuf bindings in this crate are used by both the
instrumentation in the console-subscriber
crate, which emits telemetry in
this format, and by the clients that consume that telemetry.
In general, most tokio-console
users will not depend on this crate
directly. Applications are typically instrumented using the
console-subscriber
crate, which collects data and exports it using
this wire format; this data can be consumed using the tokio-console
command-line application. However, the wire format API definition in this crate
may be useful for anyone implementing other software that also consumes the
tokio-console
diagnostic data.
Stability
⚠️ The protobuf wire format is not currently considered totally
stable. While we will try to avoid unnecessary protobuf-incompatible changes,
protobuf compatibility is only guaranteed within SemVer-compatible releases of
this crate. For example, the protobuf as of console-api
v0.2.5 may not be
backwards-compatible with console-api
v0.1.12.
Crate Feature Flags
This crate provides the following feature flags:
transport
: Generate code that is compatible with Tonic’stransport
module (disabled by default)
Getting Help
First, see if the answer to your question can be found in the API documentation. If the answer is not there, there is an active community in the Tokio Discord server. We would be happy to try to answer your question. You can also ask your question on the discussions page.
Contributing
🎈 Thanks for your help improving the project! We are so happy to have you! We have a contributing guide to help you get involved in the Tokio console project.
Supported Rust Versions
The Tokio console is built against the latest stable release. The minimum supported version is 1.64. The current Tokio console version is not guaranteed to build on Rust versions earlier than the minimum supported version.
License
This project is licensed under the MIT license.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in Tokio by you, shall be licensed as MIT, without any additional terms or conditions.
Modules
- Represents the operations performed by an async runtime.
- Nested message and enum types in
Field
. - Represents interactions between the console-subscriber and a console client observing it.
- Nested message and enum types in
Metadata
. - Nested message and enum types in
RegisterMetadata
. - Represents updates to the resources in an async runtime.
- Represents updates to the tasks in an async runtime.
- Represents events on the tracing subsystem: thread registration and span activities.
Structs
- State attributes of an entity. These are dependent on the type of the entity.
- A message representing a key-value pair of data associated with a
Span
- Unique identifier for each task.
- A Rust source code location.
- Unique identifier for metadata.
- Metadata associated with a span or event.
- Contains stats about objects that can be polled. Currently these can be:
- Any new metadata that was registered since the last update.
- Represents a period of time in which a program was executing in a particular context.
- Unique identifier for spans.