int main() { cali_config_preset("CALI_CALIPER_FLUSH_ON_EXIT", "false"); cali_id_t iter_attr = cali_create_attribute("iteration", CALI_TYPE_INT, CALI_ATTR_ASVALUE); cali_begin_string_byname("phase", "loop"); for (int i = 0; i < 4; ++i) { cali_begin_int(iter_attr, i); cali_end(iter_attr); } cali_end_byname("phase"); cali_begin_byname("ci_test_c_ann.meta-attr"); cali_id_t meta_attr = cali_create_attribute("meta-attr", CALI_TYPE_INT, CALI_ATTR_DEFAULT); int val = 47; size_t meta_sizes = sizeof(int); const void* meta_val[1] = { &val }; cali_id_t test_attr = cali_create_attribute_with_metadata("test-attr-with-metadata", CALI_TYPE_STRING, CALI_ATTR_DEFAULT, 1, &meta_attr, meta_val, &meta_sizes); cali_set_string(test_attr, "abracadabra"); cali_end_byname("ci_test_c_ann.meta-attr"); cali_begin_byname("ci_test_c_ann.setbyname"); cali_set_int_byname("attr.int", 20); cali_set_double_byname("attr.dbl", 1.25); cali_set_string_byname("attr.str", "fidibus"); cali_end_byname("ci_test_c_ann.setbyname"); cali_flush(CALI_FLUSH_CLEAR_BUFFERS); }
flux_t *connector_init (const char *path, int flags) { #if HAVE_CALIPER cali_id_t uuid = cali_create_attribute ("flux.uuid", CALI_TYPE_STRING, CALI_ATTR_SKIP_EVENTS); size_t length = strlen(path); cali_push_snapshot ( CALI_SCOPE_PROCESS | CALI_SCOPE_THREAD, 1, &uuid, (const void **)&path, &length); #endif ctx_t *ctx = NULL; if (!path) { errno = EINVAL; goto error; } if (!(ctx = malloc (sizeof (*ctx)))) { errno = ENOMEM; goto error; } memset (ctx, 0, sizeof (*ctx)); ctx->magic = MODHANDLE_MAGIC; if (!(ctx->uuid = strdup (path))) { errno = ENOMEM; goto error; } if (asprintf (&ctx->uri, "inproc://%s", ctx->uuid) < 0) { errno = ENOMEM; goto error; } if (!(ctx->h = flux_handle_create (ctx, &handle_ops, flags))) goto error; return ctx->h; error: if (ctx) { int saved_errno = errno; op_fini (ctx); errno = saved_errno; } return NULL; }
void profiling_context_init (struct profiling_context* prof) { prof->msg_type = cali_create_attribute ("flux.message.type", CALI_TYPE_STRING, CALI_ATTR_DEFAULT | CALI_ATTR_ASVALUE); prof->msg_seq = cali_create_attribute ("flux.message.seq", CALI_TYPE_INT, CALI_ATTR_SKIP_EVENTS); prof->msg_topic = cali_create_attribute ("flux.message.topic", CALI_TYPE_STRING, CALI_ATTR_DEFAULT | CALI_ATTR_ASVALUE); prof->msg_sender = cali_create_attribute ("flux.message.sender", CALI_TYPE_STRING, CALI_ATTR_SKIP_EVENTS); // if flux.message.rpc is set, we're inside an RPC, it will be set to a // type, single or multi prof->msg_rpc = cali_create_attribute ("flux.message.rpc", CALI_TYPE_STRING, CALI_ATTR_SKIP_EVENTS); prof->msg_rpc_nodeid = cali_create_attribute ("flux.message.rpc.nodeid", CALI_TYPE_INT, CALI_ATTR_SKIP_EVENTS); prof->msg_rpc_resp_expected = cali_create_attribute ("flux.message.response_expected", CALI_TYPE_INT, CALI_ATTR_SKIP_EVENTS); prof->msg_action = cali_create_attribute ("flux.message.action", CALI_TYPE_STRING, CALI_ATTR_DEFAULT | CALI_ATTR_ASVALUE); prof->msg_match_type = cali_create_attribute ("flux.message.match.type", CALI_TYPE_INT, CALI_ATTR_SKIP_EVENTS); prof->msg_match_tag = cali_create_attribute ("flux.message.match.tag", CALI_TYPE_INT, CALI_ATTR_SKIP_EVENTS); prof->msg_match_glob = cali_create_attribute ("flux.message.match.glob", CALI_TYPE_STRING, CALI_ATTR_SKIP_EVENTS); prof->initialized=1; }