Esempio n. 1
0
void stats_global_calc (void)
{
    stats_event_t event;
    avl_node *anode;
    char buffer [VAL_BUFSIZE];

    connection_stats ();
    avl_tree_rlock (_stats.global_tree);
    anode = avl_get_first(_stats.global_tree);
    while (anode)
    {
        stats_node_t *node = (stats_node_t *)anode->key;

        if (node->flags & STATS_REGULAR)
            stats_listener_send (node->flags, "EVENT global %s %s\n", node->name, node->value);
        anode = avl_get_next (anode);
    }
    avl_tree_unlock (_stats.global_tree);
    build_event (&event, NULL, "outgoing_kbitrate", buffer);
    event.flags = STATS_COUNTERS|STATS_HIDDEN;

    snprintf (buffer, sizeof(buffer), "%" PRIu64,
            (int64_t)global_getrate_avg (global.out_bitrate) * 8 / 1024);
    process_event (&event);
}
Esempio n. 2
0
    connection_stats get_connection_stats(connection connection_num)
    {
        const ana::stats* stats = ana_manager.get_stats( connection_num );

        if ( stats == NULL )
            throw std::runtime_error("Invalid connection ID to get stats from.");
        else
            return connection_stats( stats->bytes_out(),
                                     stats->bytes_in(),
                                     stats->uptime() );
    }