Skip to content

A Python library for creating Chrome Trace Viewer files

License

Notifications You must be signed in to change notification settings

jonasehrlich/chrometrace

Repository files navigation

chrometrace

A Python library for creating Chrome Trace Viewer files. The Chrome Trace Viewer can be opened in Chromium-based browsers (e.g. Google Chrome, Microsoft Edge, Chromium, ...) by entering chrome://tracing into the address bar.

The trace event format and types are defined in this document.

Installation

Install the package from PyPi using the following command.

pip install chrometrace

Usage

import chrometrace

# Create the trace sink as a context manager
with chrometrace.TraceSink("trace.json") as trace_sink:
    # Create a process tracer called myapp from the trace sink
    myapp_tracer = trace_sink.process_tracer("myapp", process_id=1337)
    # Create a thread tracer for the renderer thread from the process tracer
    renderer_thread_tracer = myapp_tracer.thread_tracer("RendererThread", 1)

    # Write a complete event at 10 us taking 1000 us with the name my_function
    renderer_thread_tracer.complete("my_function", timestamp_us=10, duration_us=1000)

Supported trace formats

Currently only the JSON Array Format is supported due to its simplicity. Support for the JSON Object Format might be added in the future.

Supported trace events

  • Duration Events
    • Begin
    • End
  • Complete Events
  • Instant Events
    • With different scopes
  • Counter Events
  • Async Events
  • Flow Events
  • Metadata Events
    • Name process / thread
    • Define process / thread sort index
    • Process labels
  • Sample Events
  • Object Events
  • Mark Events
  • Clock Sync Events
  • Context Events

About

A Python library for creating Chrome Trace Viewer files

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages