libraries for various programming languages that make it easy to generate per-process trace files that can be loaded into chrome://tracing

chrometracing: chrome://tracing trace_event files

The chrometracing directory contains libraries for various programming languages that make it easy to generate per-process trace files that can be loaded into chrome://tracing.

Implementation Status

Language Status
C++ Work In Progress
Go Implemented: github.com/google/chrometracing
Python Implemented, but not released
Java Work In Progress

Go demo

See the _demo directory for an example Go program.

After running the demo program, load the resulting chrome trace file from os.TempDir() (e.g. /tmp on Linux) into chrome://tracing:

screenshot

Owner
Google
Google ❤️ Open Source
Google
Comments
  • Revert unintentional deletion of Flush method.

    Revert unintentional deletion of Flush method.

    This is a "revert" of the deletions in 536f2aa8a76bb3e51c34ae4625860d1a92285b53 which appear to unintentionally and erroneously delete the Flush method.

    It makes no other changes and is 1:1 with the original version.

  • Start unit testing support and set up CI

    Start unit testing support and set up CI

    Update #1

    The main unit test file uses googletest and gmock as dependencies, which is going to be a little more work. Start on a trivial test.

    Also set up separate CI runs for Go and C++.

  • Add support for compiling C++ version (with cmake)

    Add support for compiling C++ version (with cmake)

    Update #1

    This is not fully complete yet. Support for the unit tests is missing for now, and only building a static library is supported.

    To build:

    mkdir build
    cd build
    cmake ..
    make
    
  • Make chrometracing_test.cc work

    Make chrometracing_test.cc work

    Fixes #1

    This also adds a vendored version of googletest for consistency.

    In the future, I think we should have an option to use googletest and/or absl-cpp from the system.

  • Make C++ testing work, add (C) for cmake files

    Make C++ testing work, add (C) for cmake files

    Update #1

    Looking through CI results from #3, I noticed that the C++ test runner exits with success without running any tests.

    Move enable_testing into the top-level CMakeLists.txt.

  • Properly release Python implementation

    Properly release Python implementation

    We have a Python implementation: https://github.com/google/chrometracing/blob/main/chrometracing.py

    …but this implementation is not available as a package one can install via pip, only because I don’t know how to set that up.

  • open-source existing Java implementation

    open-source existing Java implementation

    We have a Java implementation, but I don’t know how to scrub it of internal comments, annotations and dependencies for an open-source release.

    I also don’t know whether/how we can properly publish Java open source.

    If anyone has a need for the Java implementation, please comment here with details and I can try to find someone who can help open-source the Java implementation.

Related tags
Split multiple Kubernetes files into smaller files with ease. Split multi-YAML files into individual files.

kubectl-slice: split Kubernetes YAMLs into files kubectl-slice is a neat tool that allows you to split a single multi-YAML Kubernetes manifest into mu

Jan 3, 2023
Get cloud instances with your favourite software pre-loaded

This Golang package can be used to provision cloud hosts using a simple CRUD-style API along with a cloud-init user-data script. It could be used to automate anything from k3s clusters, to blogs, or CI runners. We use it to create the cheapest possible hosts in the cloud with a public IP address.

Dec 14, 2022
A program for extracting information from chrome session files.

What A tool for dumping the contents of chrome session files. Why? Most tools for reading SNSS files (chrome session files) are either broken or outda

Nov 23, 2022
go-i18n is a Go package and a command that helps you translate Go programs into multiple languages.

go-i18n is a Go package and a command that helps you translate Go programs into multiple languages.

Jan 2, 2023
Cpu-profiling - Basic example of CPU Profiling in Golang which shows the bottlenecks and how much time is spent per function

cpu-profiling Basic example of CPU Profiling in Golang which shows the bottlenec

Aug 2, 2022
A set of instrumentation features for collecting relevant tracing data as well as secure an application

Go Agent goagent provides a set of instrumentation features for collecting relevant tracing data as well as secure an application by blocking requests

Dec 21, 2021
gofu aims to provide a flexible toolkit for creating custom scripting languages in Go.

gofu a scripting language toolkit in Go intro gofu aims to provide a flexible toolkit for creating custom scripting languages in Go. functions Functio

Nov 14, 2022
simple i18n support that relies on standard go libraries

The i18n package mainly includes a set of methods for managing the data. Start by creating a en.json file.

Jun 29, 2021
Instrumentations of third-party libraries using opentelemetry-go library

OpenTelemetry Go Contributions About This reopsitory hosts instrumentations of the following OpenTelemetry libraries: confluentinc/confluent-kafka-go

Nov 14, 2022
LogAnalyzer - Analyze logs with custom regex patterns.Can search for particular patterns on multiple files in a directory.
LogAnalyzer - Analyze logs with custom regex patterns.Can search for particular patterns on multiple files in a directory.

LogAnalyzer Analyze logs with custom regex patterns.Can search for particular patterns on multiple files in a directory

May 31, 2022
Small tool for splitting files found in a path into multiple groups

Small tool for splitting files found in a path into multiple groups. Usefull for parallelisation of whatever can be paralleled with multiple files.

Jan 30, 2022
Reload Go code in a running process at function/method level granularity

got reload? Function/method-level stateful hot reloading for Go! Status Very much work in progress.

Nov 9, 2022
Envoy utility to process envoy config for fast development and debugging.

envoyconf-tools Envoy is a proxy, really awesome and we are devs who often use it, face errors and struggle to debug it, when envoy config's source is

Oct 31, 2021
A process that receives probe information and stores it in a database for reporting and analysis

probed is a process that receives probe information and stores it in a database for reporting and analysis.

Nov 2, 2022
A collection of small Go utilities to make life easier.

The simplego package provides a collection of Go utilities for common tasks.

Jan 4, 2023
The easiest way to make API documents for GraphQL

Document Generator for GraphQL gqldoc is now alpha gqldoc is command line tool to generate documents from GraphQL schema or your GraphQL endpoint. the

Dec 20, 2022
Make Go functional with dogs
Make Go functional with dogs

dogs Make Go functional with dogs Caution This is a highly-experimental package. Any changes will be made in a backward-incompatible manner. This pack

Jan 4, 2023
make slice items unique in go

make slice items unique in go

Jan 20, 2022
How much you spend for glovo. Make config file and launch yourself

how_much_you_spend How much you spend for glovo. Make config file and launch yourself, you are welcome! Put config file in the same folder as executab

Nov 9, 2021