Overview

Baical is free high-performance tools set for sending and receiving traces & telemetry and log messages from your software and drivers.

We develop this software with care, passion and faith in software without bugs :) Baical and P7 already helping many engineers across the word and we hope it will be useful for your tasks also.

Project components:
  • Baical - cross-platform, open source, server application for receiving, storing, viewing and managing telemetry & trace data
  • P7 - open source, cross-platform, fastest library for sending logs, telemetry & trace data from your application. (C/C++/C#/Python)
  • Angara - ETW message consumer (TraceView replacement), receives traces from your windows driver or application on local PC and pass them to Baical server over network.

Features

Data centralization

Baical provides for sofware engineers and engineers in test a flexible and comfortable way to receive, process and view traces, logs and telemetry from multiple systems in real-time.
GUI & CLI versions are available.

Flexibility

Baical server is designed with thoughts of modularity. All components, except core, are plugins.

There are 4 plugins groups:

  • Providers - plugins are in charge of receiving and demultiplexing incoming data into separated srteams
  • Dispatchers - plugins are in charge of redirecting incoming streams to appropriate storage and managing storage settings
  • Processors - plugins are in charge of incoming data analysis in real-time
  • Viewers - plugins are in charge of displaying incoming information in real-time or off-line
  • Storages - plugins are in charge of storing stream data and providing access to data for viewers and processors

Trace and logs viewer

Displaying maximum information for every trace message in real time:

  • Text message
  • Source file name, line number and function name
  • Module ID & name (if it was registered)
  • Level (error, warning, .. etc.)
  • High precision time with 1ns/100ns accuracy (platform dependant)
  • Current thread ID and name (if it was registered)
  • Current processor number
  • Trace ID
  • Sequence Number

Trace viewer main features

  • On-line and off-line streams filtration
  • On-line modules verbosity level management
  • Fast search
  • Common items auto-highlighting (same Id, CPU, thread, etc.)
  • Flexible export
  • Color schemes
  • Bookmarks
  • Open source file in IDE/viewer
  • Predicates and regular expressions support for next features: search, filter, export, color schemes and highlighting
  • Instant navigation on huge files (gigabytes)
  • Short-cuts management
  • Time format

Telemetry viewer

Display and manage in real time telemetry information coming from software with P7 on board

Telemetry viewer main features

  • Displaying threads cyclograms, buffers levels, CPU loading, any user values
  • Samples real-time analysis using Lua scripts
  • Reports generation in real-time using Lua scripts
  • Counters management (displaying algo, color, min, max, visible, enable, section)
  • Enable/disable counters remotely (saves CPU for your software)
  • High precision samples time stamp (100ns)
  • Instant scaling from 100 nanosecond per pixel up to 1 hour per pixel
  • Counters groups, groups management, counters renaming
  • Searching engine based on predicates (for example "Value1 >= 99 && Value2 < 50")
  • Flexible export to CSV files
  • Hardware accelerated drawing (Direct 2D)
  • Up to 65536 counters per stream
  • Instant navigation on huge files (gigabytes)