Skip to content

Latest commit

 

History

History
71 lines (50 loc) · 2.51 KB

README.md

File metadata and controls

71 lines (50 loc) · 2.51 KB

fb303

fb303 is a base Thrift service and a common set of functionality for querying stats, options, and other information from a service.

Dependencies

fb303 depends on

And all transitive dependencies of the above.

Using fb303 for your service

You can have your own thrift service interface extend fb303_core.BaseService to utilize the fb303 API. Some of the primary interfaces defined by fb303 are:

  • getStatus() - Query the state of a running service.
  • getCounters() - Get custom statistics about the performance and behavior of a service.
  • getExportedValues() - Get arbitrary string values exported by a service. This can be used to export things such as the build metadata (version info and the source control commit ID it was built from) and other key configuration information.
  • getOptions() / setOption() - Get and set configurable service parameters.

C++ service handler implementations can extend facebook::fb303::BaseService for default implementations of the Thrift methods.

Curious about the name?

Wikipedia: http://en.wikipedia.org/wiki/Roland_TB-303

The TB-303 makes bass lines.

Bass is what lies underneath any strong tune.

fb303 is the shared root of all Thrift services.

fb303 ⇒ FacebookBase303.

Join the fb303 community

See the CONTRIBUTING file for how to help out.

License

fb303 is licensed under Apache 2.0 as found in the LICENSE file.

Note

fb303 is a dependency of many other projects at Facebook which expose Thrift interfaces; some which have been open-sourced. Examples include edenfs, proxygen, and fboss.

This project has evolved over many years, and parts of it predate C++11. While it provides useful functionality for service information reporting, it is not representative of modern C++ coding standards.

An early version of fb303 was originally open-sourced in the Apache Thrift project in 2008, and still exists in the Apache Thrift codebase under contrib/fb303/. The fb303 code has since continued evolving at Facebook. This version contained in this repository has significantly expanded functionality with regards to statistics tracking and reporting in C++ services.