NVIDIA DOCA SDK Data Center on a Chip Framework Documentation
doca_telemetry_exporter.h File Reference
#include <stdint.h>
#include <stddef.h>
#include <doca_compat.h>
#include <doca_error.h>
Include dependency graph for doca_telemetry_exporter.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define DOCA_TELEMETRY_EXPORTER_FIELD_TYPE_BOOL   "bool"
 DOCA_TELEMETRY_EXPORTER_FIELD_TYPE_{} are data types that are used to create doca_telemetry_exporter_field;. More...
 
#define DOCA_TELEMETRY_EXPORTER_FIELD_TYPE_CHAR   "char"
 DOCA telemetry char type. More...
 
#define DOCA_TELEMETRY_EXPORTER_FIELD_TYPE_SHORT   "short"
 DOCA telemetry short type. More...
 
#define DOCA_TELEMETRY_EXPORTER_FIELD_TYPE_INT   "int"
 DOCA telemetry in type. More...
 
#define DOCA_TELEMETRY_EXPORTER_FIELD_TYPE_LONG   "long"
 DOCA telemetry long type. More...
 
#define DOCA_TELEMETRY_EXPORTER_FIELD_TYPE_LONGLONG   "long long"
 DOCA telemetry longlong type. More...
 
#define DOCA_TELEMETRY_EXPORTER_FIELD_TYPE_UCHAR   "unsigned char"
 DOCA telemetry uchar type. More...
 
#define DOCA_TELEMETRY_EXPORTER_FIELD_TYPE_USHORT   "unsigned short"
 DOCA telemetry ushort type. More...
 
#define DOCA_TELEMETRY_EXPORTER_FIELD_TYPE_UINT   "unsigned int"
 DOCA telemetry uint type. More...
 
#define DOCA_TELEMETRY_EXPORTER_FIELD_TYPE_ULONG   "unsigned long"
 DOCA telemetry ulong type. More...
 
#define DOCA_TELEMETRY_EXPORTER_FIELD_TYPE_ULONGLONG   "unsigned long long"
 DOCA telemetry ulonglong type. More...
 
#define DOCA_TELEMETRY_EXPORTER_FIELD_TYPE_FLOAT   "float"
 DOCA telemetry float type. More...
 
#define DOCA_TELEMETRY_EXPORTER_FIELD_TYPE_DOUBLE   "double"
 DOCA telemetry double type. More...
 
#define DOCA_TELEMETRY_EXPORTER_FIELD_TYPE_INT8   "int8_t"
 DOCA telemetry int8 type. More...
 
#define DOCA_TELEMETRY_EXPORTER_FIELD_TYPE_INT16   "int16_t"
 DOCA telemetry int16 type. More...
 
#define DOCA_TELEMETRY_EXPORTER_FIELD_TYPE_INT32   "int32_t"
 DOCA telemetry int32 type. More...
 
#define DOCA_TELEMETRY_EXPORTER_FIELD_TYPE_INT64   "int64_t"
 DOCA telemetry int64 type. More...
 
#define DOCA_TELEMETRY_EXPORTER_FIELD_TYPE_UINT8   "uint8_t"
 DOCA telemetry uint8 type. More...
 
#define DOCA_TELEMETRY_EXPORTER_FIELD_TYPE_UINT16   "uint16_t"
 DOCA telemetry uint16 type. More...
 
#define DOCA_TELEMETRY_EXPORTER_FIELD_TYPE_UINT32   "uint32_t"
 DOCA telemetry uint32 type. More...
 
#define DOCA_TELEMETRY_EXPORTER_FIELD_TYPE_UINT64   "uint64_t"
 DOCA telemetry uint64 type. More...
 
#define DOCA_TELEMETRY_EXPORTER_FIELD_TYPE_TIMESTAMP   DOCA_TELEMETRY_EXPORTER_FIELD_TYPE_UINT64
 DOCA telemetry timestamp type. More...
 
#define DOCA_GUID_SIZE   16
 DOCA GUID size. More...
 

Typedefs

typedef enum doca_telemetry_exporter_ipc_status doca_telemetry_exporter_ipc_status_t
 DOCA telemetry IPC status. More...
 
typedef uint8_t doca_telemetry_exporter_type_index_t
 DOCA schema field type index. More...
 
typedef uint64_t doca_telemetry_exporter_timestamp_t
 DOCA schema type index type. More...
 
typedef uint8_t doca_guid_t[DOCA_GUID_SIZE]
 DOCA GUID type. More...
 

Enumerations

enum  doca_telemetry_exporter_ipc_status { DOCA_TELEMETRY_EXPORTER_IPC_STATUS_FAILED = -1 , DOCA_TELEMETRY_EXPORTER_IPC_STATUS_CONNECTED , DOCA_TELEMETRY_EXPORTER_IPC_STATUS_DISABLED }
 DOCA telemetry IPC status. More...
 

Functions

DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_schema_init (const char *schema_name, struct doca_telemetry_exporter_schema **doca_schema)
 Initialize DOCA schema to prepare it for setting attributes and adding types. DOCA schema is used to initialize DOCA sources that will collect the data according to the same schema. More...
 
DOCA_EXPERIMENTAL void doca_telemetry_exporter_schema_set_buf_size (struct doca_telemetry_exporter_schema *doca_schema, uint64_t size)
 Set buffer size Default value is 60000 bytes. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_schema_get_buf_size (struct doca_telemetry_exporter_schema *doca_schema, uint64_t *size)
 Get buffer size. More...
 
DOCA_EXPERIMENTAL void doca_telemetry_exporter_schema_set_buf_data_root (struct doca_telemetry_exporter_schema *doca_schema, const char *path)
 Set buffer data root Default path is "/opt/mellanox/doca/services/telemetry/data/". More...
 
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_schema_get_buf_data_root (struct doca_telemetry_exporter_schema *doca_schema, const char **path)
 Get data root path. More...
 
DOCA_EXPERIMENTAL void doca_telemetry_exporter_schema_set_file_write_enabled (struct doca_telemetry_exporter_schema *doca_schema)
 Enable file write file write is disabled by default. More...
 
DOCA_EXPERIMENTAL void doca_telemetry_exporter_schema_set_file_write_max_size (struct doca_telemetry_exporter_schema *doca_schema, size_t size)
 Set file maximum size Default value is 1MB. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_schema_get_file_write_max_size (struct doca_telemetry_exporter_schema *doca_schema, size_t *size)
 Get file maximum size. More...
 
DOCA_EXPERIMENTAL void doca_telemetry_exporter_schema_set_file_write_max_age (struct doca_telemetry_exporter_schema *doca_schema, doca_telemetry_exporter_timestamp_t max_age)
 Set file maximum age Default value is 1 hour. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_schema_get_file_write_max_age (struct doca_telemetry_exporter_schema *doca_schema, doca_telemetry_exporter_timestamp_t *max_age)
 Get file maximum age. More...
 
DOCA_EXPERIMENTAL void doca_telemetry_exporter_schema_set_ipc_enabled (struct doca_telemetry_exporter_schema *doca_schema)
 Enable IPC IPC is disabled by default. More...
 
DOCA_EXPERIMENTAL void doca_telemetry_exporter_schema_set_ipc_sockets_dir (struct doca_telemetry_exporter_schema *doca_schema, const char *sockets_dir)
 Set IPC socket directory. Default path is "/opt/mellanox/doca/services/telemetry/ipc_sockets". More...
 
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_schema_get_ipc_sockets_dir (struct doca_telemetry_exporter_schema *doca_schema, const char **sockets_dir)
 Get IPC socket directory. More...
 
DOCA_EXPERIMENTAL void doca_telemetry_exporter_schema_set_ipc_reconnect_time (struct doca_telemetry_exporter_schema *doca_schema, uint32_t max_time)
 Set IPC reconnect time in milliseconds Time limit for reconnect attempts. If the limit is reached, the client is considered disconnected. Default value is 100 milliseconds. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_schema_get_ipc_reconnect_time (struct doca_telemetry_exporter_schema *doca_schema, uint32_t *max_time)
 Get IPC reconnect time in milliseconds. More...
 
DOCA_EXPERIMENTAL void doca_telemetry_exporter_schema_set_ipc_reconnect_tries (struct doca_telemetry_exporter_schema *doca_schema, uint8_t tries)
 Set maximum IPC reconnect tries. Number of reconnect attempts during reconnection period. Default value is 3 tries. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_schema_get_ipc_reconnect_tries (struct doca_telemetry_exporter_schema *doca_schema, uint8_t *tries)
 Get maximum IPC reconnect tries. More...
 
DOCA_EXPERIMENTAL void doca_telemetry_exporter_schema_set_ipc_socket_timeout (struct doca_telemetry_exporter_schema *doca_schema, uint32_t timeout)
 Set IPC socket timeout in milliseconds Timeout for IPC messaging socket. If timeout is reached during send_receive, the client is considered disconnected. Default value is 3000 milliseconds. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_schema_get_ipc_socket_timeout (struct doca_telemetry_exporter_schema *doca_schema, uint32_t *timeout)
 Get IPC socket timeout in milliseconds. More...
 
DOCA_EXPERIMENTAL void doca_telemetry_exporter_schema_set_opaque_events_enabled (struct doca_telemetry_exporter_schema *doca_schema)
 Enable opaque events Opaque events are disabled by default. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_type_create (struct doca_telemetry_exporter_type **type)
 Create new telemetry type. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_type_add_field (struct doca_telemetry_exporter_type *type, struct doca_telemetry_exporter_field *field)
 Add DOCA telemetry field to type. The users loses the ownership of the field after a successful invocation of the function. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_type_destroy (struct doca_telemetry_exporter_type *type)
 Destroy doca telemetry type previously created by doca_telemetry_exporter_type_create() More...
 
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_field_create (struct doca_telemetry_exporter_field **field)
 Create new telemetry field. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_field_destroy (struct doca_telemetry_exporter_field *field)
 Destroy field previously created by doca_telemetry_exporter_field_create() More...
 
DOCA_EXPERIMENTAL void doca_telemetry_exporter_field_set_name (struct doca_telemetry_exporter_field *field_info, const char *name)
 Set doca telemetry field name. More...
 
DOCA_EXPERIMENTAL void doca_telemetry_exporter_field_set_description (struct doca_telemetry_exporter_field *field_info, const char *desc)
 Set doca telemetry field description. More...
 
DOCA_EXPERIMENTAL void doca_telemetry_exporter_field_set_type_name (struct doca_telemetry_exporter_field *field_info, const char *type)
 Set doca telemetry field type. More...
 
DOCA_EXPERIMENTAL void doca_telemetry_exporter_field_set_array_len (struct doca_telemetry_exporter_field *field_info, uint16_t len)
 Set doca telemetry field length. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_schema_add_type (struct doca_telemetry_exporter_schema *doca_schema, const char *new_type_name, struct doca_telemetry_exporter_type *type, doca_telemetry_exporter_type_index_t *type_index)
 Add user-defined fields to create new type in DOCA schema. The users loses the ownership of the type after a successful invocation of the function. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_schema_destroy (struct doca_telemetry_exporter_schema *doca_schema)
 Destructor for DOCA schema. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_schema_start (struct doca_telemetry_exporter_schema *doca_schema)
 Finalizes schema setup to start creating Doca Sources from the schema. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_source_create (struct doca_telemetry_exporter_schema *doca_schema, struct doca_telemetry_exporter_source **doca_source)
 Creates a single DOCA source from schema. More...
 
DOCA_EXPERIMENTAL void doca_telemetry_exporter_source_set_id (struct doca_telemetry_exporter_source *doca_source, const char *source_id)
 Set source id. More...
 
DOCA_EXPERIMENTAL void doca_telemetry_exporter_source_set_tag (struct doca_telemetry_exporter_source *doca_source, const char *source_tag)
 Set source tag. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_source_start (struct doca_telemetry_exporter_source *doca_source)
 Applies source attribute and starts DOCA source. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_source_report (struct doca_telemetry_exporter_source *doca_source, doca_telemetry_exporter_type_index_t index, void *data, int count)
 Report events data of the same type via DOCA source. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_source_opaque_report (struct doca_telemetry_exporter_source *doca_source, const doca_guid_t app_id, uint64_t user_defined1, uint64_t user_defined2, const void *data, uint32_t data_size)
 Report opaque event data via DOCA source. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_source_get_opaque_report_max_data_size (struct doca_telemetry_exporter_source *doca_source, uint32_t *max_data_size)
 Get max data size for opaque report. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_source_flush (struct doca_telemetry_exporter_source *doca_source)
 Immediately flush the data of the DOCA source. This function is not thread-safe and should not be called from different threads without proper access control. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_source_destroy (struct doca_telemetry_exporter_source *doca_source)
 Destructor for DOCA source. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_get_timestamp (doca_telemetry_exporter_timestamp_t *timestamp)
 Get timestamp in the proper format. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_check_ipc_status (struct doca_telemetry_exporter_source *doca_source, doca_telemetry_exporter_ipc_status_t *status)
 Return status of IPC transport. More...