38 #ifndef CENSUS_CENSUS_H
39 #define CENSUS_CENSUS_H
99 #define CENSUS_MAX_TAG_KV_LEN 255
101 #define CENSUS_MAX_PROPAGATED_TAGS 255
104 #define CENSUS_TAG_PROPAGATE 1
105 #define CENSUS_TAG_STATS 2
106 #define CENSUS_TAG_BINARY 4
107 #define CENSUS_TAG_RESERVED 8
111 #define CENSUS_TAG_IS_PROPAGATED(flags) (flags & CENSUS_TAG_PROPAGATE)
112 #define CENSUS_TAG_IS_STATS(flags) (flags & CENSUS_TAG_STATS)
113 #define CENSUS_TAG_IS_BINARY(flags) (flags & CENSUS_TAG_BINARY)
205 char *buffer,
size_t buf_size,
206 size_t *print_buf_size,
207 size_t *bin_buf_size);
212 const char *bin_buffer,
288 const char *(*get_rpc_service_name)(int64_t id);
289 const char *(*get_rpc_method_name)(int64_t id);
356 const char *buffer, int64_t rpc_name_id,
386 const char *family,
const char *name,
400 #define CENSUS_TRACE_RECORD_START_OP ((uint32_t)0)
401 #define CENSUS_TRACE_RECORD_END_OP ((uint32_t)1)
411 const char *buffer,
size_t n);
int n_modified_tags
Definition: census.h:123
census_aggregation_ops census_agg_histogram
CENSUSAPI int census_enabled(void)
Return the census features currently enabled.
CENSUSAPI void census_view_delete(census_view *view)
Destroy a previously created view.
int n_propagated_tags
Definition: census.h:118
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.
struct census_aggregation_ops census_aggregation_ops
Type representing a particular aggregation.
Definition: census.h:481
double value
Definition: census.h:473
CENSUSAPI size_t census_view_metric(const census_view *view)
Metric ID associated with a view.
CENSUSAPI const census_context_status * census_context_get_status(const census_context *context)
struct census_view census_view
A census view type.
Definition: census.h:497
size_t value_len
Definition: census.h:94
int n_added_tags
Definition: census.h:122
Holds all the aggregation data for a particular view instantiation.
Definition: census.h:532
const void ** data
Definition: census.h:534
CENSUSAPI const census_aggregation * census_view_aggregrations(const census_view *view)
Get aggregation descriptors associated with a view.
CENSUSAPI int census_context_get_tag(const census_context *context, const char *key, census_tag *tag)
const census_view_aggregation_data * data
Definition: census.h:540
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)
int n_deleted_tags
Definition: census.h:121
Information needed to instantiate a new aggregation.
Definition: census.h:491
CENSUSAPI census_context * census_context_decode(const char *buffer, size_t size, const char *bin_buffer, size_t bin_size)
int n_invalid_tags
Definition: census.h:124
Trace record.
Definition: census.h:414
CENSUSAPI char * census_context_encode(const census_context *context, char *buffer, size_t buf_size, size_t *print_buf_size, size_t *bin_buf_size)
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
Definition: census.h:216
uint8_t flags
Definition: census.h:95
Represent functions to map RPC name ID to service/method names.
Definition: census.h:287
uint64_t op_id
Definition: census.h:417
CENSUSAPI census_context * census_context_create(const census_context *base, const census_tag *tags, int ntags, census_context_status const **status)
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.
const census_aggregation_ops * ops
Definition: census.h:492
int n_local_tags
Definition: census.h:120
CENSUSAPI const census_context * census_view_tags(const census_view *view)
Get tags associated with view.
int n_ignored_tags
Definition: census.h:126
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:167
CENSUSAPI void census_context_destroy(census_context *context)
CENSUSAPI size_t census_view_naggregations(const census_view *view)
Number of aggregations associated with view.
CENSUSAPI void census_view_reset(census_view *view)
Reset all view data to zero for the specified view.
size_t n_tag_sets
Definition: census.h:539
census_timestamp timestamp
Definition: census.h:415
gpr_timespec ts
Definition: census.h:257
uint32_t type
Definition: census.h:418
census_aggregation_ops census_agg_distribution
int base
Definition: census.h:165
This structure represents a timestamp as used by census to record the time at which an operation begi...
Definition: census.h:254
uint32_t metric_id
Definition: census.h:472
CENSUSAPI const census_view_data * census_view_get_data(const census_view *view)
Get data from aggregations associated with a view.
CENSUSAPI int census_context_next_tag(census_context_iterator *iterator, census_tag *tag)
census_aggregation_ops census_agg_sum
const census_context * context
Definition: census.h:164
CENSUSAPI int census_supported(void)
Return the features supported by the current census implementation (not all features will be availabl...
CENSUSAPI int census_get_trace_record(census_trace_record *trace_record)
Get a trace record.
const char * key
Definition: census.h:92
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.
Census view data as returned by census_view_get_data().
Definition: census.h:538
uint64_t trace_id
Definition: census.h:416
census_features
Definition: census.h:48
CENSUSAPI void census_set_rpc_client_peer(census_context *context, const char *peer)
Add peer information to a context representing a client RPC operation.
int n_propagated_binary_tags
Definition: census.h:119
const char * value
Definition: census.h:93
const census_context * tags
Definition: census.h:533
const void * create_arg
Definition: census.h:493
CENSUSAPI void census_context_initialize_iterator(const census_context *context, census_context_iterator *iterator)
CENSUSAPI census_view * census_view_create(uint32_t metric_id, const census_context *tags, const census_aggregation *aggregations, size_t naggregations)
Create a new view.
const char * buffer
Definition: census.h:419
size_t buf_size
Definition: census.h:420
census_aggregation_ops census_agg_window
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:166
CENSUSAPI census_timestamp census_start_rpc_op_timestamp(void)
Mark the beginning of an RPC operation.
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:81