86 #define CENSUS_MAX_TAG_KV_LEN 255 
   88 #define CENSUS_MAX_PROPAGATED_TAGS 255 
   91 #define CENSUS_TAG_PROPAGATE 1  
   92 #define CENSUS_TAG_STATS 2     
   93 #define CENSUS_TAG_RESERVED 4  
   97 #define CENSUS_TAG_IS_PROPAGATED(flags) (flags & CENSUS_TAG_PROPAGATE) 
   98 #define CENSUS_TAG_IS_STATS(flags) (flags & CENSUS_TAG_STATS) 
  179                                        char *buffer, 
size_t buf_size);
 
  259   const char *(*get_rpc_service_name)(int64_t id);
 
  260   const char *(*get_rpc_method_name)(int64_t id);
 
  327     const char *buffer, int64_t rpc_name_id,
 
  357                                           const char *family, 
const char *name,
 
  371 #define CENSUS_TRACE_RECORD_START_OP ((uint32_t)0) 
  372 #define CENSUS_TRACE_RECORD_END_OP ((uint32_t)1) 
  382                                   const char *buffer, 
size_t n);
 
  445                                          size_t resource_pb_size);
 
int n_modified_tags
number of tags that were added 
Definition: census.h:107
CENSUSAPI int census_enabled(void)
Return the census features currently enabled. 
int n_propagated_tags
Definition: census.h:103
CENSUSAPI census_context * census_start_server_rpc_op(const char *buffer, int64_t rpc_name_id, const census_rpc_name_info *rpc_name_info, const char *peer, int trace_mask, census_timestamp *start_time)
Start a server RPC operation. 
A single value to be recorded comprises two parts: an ID for the particular resource and the value to...
Definition: census.h:456
double value
Definition: census.h:458
int32_t resource_id
Definition: census.h:457
An instance of this structure is kept by every context, and records the basic information associated ...
Definition: census.h:102
CENSUSAPI const census_context_status * census_context_get_status(const census_context *context)
Get a pointer to the original status from the context creation. 
int n_added_tags
number of tags that were deleted 
Definition: census.h:106
Do not enable census. 
Definition: census.h:35
CENSUSAPI int census_context_get_tag(const census_context *context, const char *key, census_tag *tag)
Get a context tag by key. 
CENSUSAPI int census_trace_mask(const census_context *context)
Get the current trace mask associated with this context. 
CENSUSAPI void census_record_values(census_context *context, census_value *values, size_t nvalues)
Record new usage values against the given context. 
int n_deleted_tags
number of non-propagated (local) tags 
Definition: census.h:105
int n_invalid_tags
number of tags that were modified 
Definition: census.h:108
Enable Census stats collection. 
Definition: census.h:37
Trace record. 
Definition: census.h:385
CENSUSAPI void census_trace_print(census_context *context, uint32_t type, const char *buffer, size_t n)
Insert a trace record into the trace stream. 
census_trace_mask_values
Distributed traces can have a number of options. 
Definition: census.h:187
uint8_t flags
Definition: census.h:82
Represent functions to map RPC name ID to service/method names. 
Definition: census.h:258
Enable Census CPU usage collection. 
Definition: census.h:38
uint64_t op_id
Trace ID associated with record. 
Definition: census.h:388
Enable census tracing. 
Definition: census.h:36
CENSUSAPI census_context * census_context_create(const census_context *base, const census_tag *tags, int ntags, census_context_status const **status)
Create a new context, adding and removing tags from an existing context. 
CENSUSAPI census_context * census_start_op(census_context *context, const char *family, const char *name, int trace_mask)
Start a new, non-RPC operation. 
CENSUSAPI int census_trace_scan_start(int consume)
Start a scan of existing trace records. 
int n_local_tags
number of propagated tags 
Definition: census.h:104
int n_ignored_tags
number of tags with bad keys or values (e.g. 
Definition: census.h:110
CENSUSAPI void census_shutdown(void)
CENSUSAPI void census_trace_scan_end()
End a scan previously started by census_trace_scan_start() 
char * kvm
Definition: census.h:151
CENSUSAPI void census_context_destroy(census_context *context)
Destroy a context. 
CENSUSAPI size_t census_context_encode(const census_context *context, char *buffer, size_t buf_size)
Tag set encode/decode functionality. 
census_timestamp timestamp
Definition: census.h:386
gpr_timespec ts
Use gpr_timespec for default implementation. 
Definition: census.h:228
uint32_t type
Operation ID associated with record. 
Definition: census.h:389
int base
Definition: census.h:149
The concept of "operation" is a fundamental concept for Census. 
Definition: census.h:225
Default, empty flags. 
Definition: census.h:189
CENSUSAPI census_context * census_context_decode(const char *buffer, size_t size)
Decode context buffer encoded with census_context_encode(). 
CENSUSAPI int census_context_next_tag(census_context_iterator *iterator, census_tag *tag)
Get the contents of the "next" tag in the context. 
CENSUSAPI void census_delete_resource(int32_t resource_id)
Delete a resource created by census_define_resource(). 
const census_context * context
Definition: census.h:148
CENSUSAPI int census_supported(void)
Return the features supported by the current census implementation (not all features will be availabl...
CENSUSAPI int32_t census_resource_id(const char *name)
Determine the id of a resource, given its name. 
CENSUSAPI int census_get_trace_record(census_trace_record *trace_record)
Get a trace record. 
const char * key
Definition: census.h:80
CENSUSAPI void census_end_op(census_context *context, int status)
End an operation started by any of the census_start_*_op*() calls. 
CENSUSAPI int census_initialize(int features)
Shutdown and startup census subsystem. 
CENSUSAPI void census_set_trace_mask(int trace_mask)
Set the trace mask associated with a context. 
uint64_t trace_id
Time of record creation. 
Definition: census.h:387
census_features
RPC-internal Census API's. 
Definition: census.h:33
CENSUSAPI void census_set_rpc_client_peer(census_context *context, const char *peer)
Add peer information to a context representing a client RPC operation. 
A tag is a key:value pair. 
Definition: census.h:79
CENSUSAPI int32_t census_define_resource(const uint8_t *resource_pb, size_t resource_pb_size)
Core stats collection API's. 
Analogous to struct timespec. 
Definition: gpr_types.h:47
const char * value
Definition: census.h:81
CENSUSAPI void census_context_initialize_iterator(const census_context *context, census_context_iterator *iterator)
Initialize a census_tag_iterator. 
const char * buffer
Type (as used in census_trace_print() 
Definition: census.h:390
size_t buf_size
Buffer (from census_trace_print() 
Definition: census.h:391
CENSUSAPI census_context * census_start_client_rpc_op(const census_context *context, int64_t rpc_name_id, const census_rpc_name_info *rpc_name_info, const char *peer, int trace_mask, const census_timestamp *start_time)
Start a client rpc operation. 
int index
Definition: census.h:150
CENSUSAPI census_timestamp census_start_rpc_op_timestamp(void)
Mark the beginning of an RPC operation. 
Structure used for iterating over the tags in a context. 
Definition: census.h:147
struct census_context census_context
A Census Context is a handle used by Census to represent the current tracing and stats collection inf...
Definition: census.h:68