Beispiel #1
0
/**
 * Reports statistics.
 */
static void reportStats(void)
{
    struct timeval          now;
    double                  interval;
    double                  rate;
    char                    buf[80];
    int                     logmask;
    unsigned long           byteCount;
    unsigned long           packetCount, missedPacketCount, prodCount;
    static unsigned long    totalPacketCount;
    static unsigned long    totalMissedPacketCount;
    static unsigned long    totalProdCount;
    static unsigned long    totalByteCount;

    (void)gettimeofday(&now, NULL);
    readerGetStatistics(reader, &byteCount);
    pmGetStatistics(productMaker, &packetCount, &missedPacketCount, &prodCount);

    totalByteCount += byteCount;
    totalPacketCount += packetCount;
    totalMissedPacketCount += missedPacketCount;
    totalProdCount += prodCount;

    logmask = setulogmask(LOG_UPTO(LOG_NOTICE));

    nplStart("----------------------------------------");
    nplAdd("Ingestion Statistics:");
    nplAdd("    Since Previous Report (or Start):");
    interval = duration(&now, &reportTime);
    encodeDuration(buf, sizeof(buf), interval);
    nplAdd("        Duration          %s", buf);
    nplAdd("        Raw Data:");
    nplAdd("            Octets        %lu", CHAR_BIT*byteCount/8);
    nplAdd("            Mean Rate:");
    rate = (byteCount/interval)*(CHAR_BIT/8.0);
    nplAdd("                Octets    %g/s", rate);
    nplAdd("                Bits      %g/s", 8*rate);
    nplAdd("        Received packets:");
    nplAdd("            Number        %lu", packetCount);
    nplAdd("            Mean Rate     %g/s", packetCount/interval);
    nplAdd("        Missed packets:");
    nplAdd("            Number        %lu", missedPacketCount);
    nplAdd("            %%             %g",
            100.0 * missedPacketCount / (missedPacketCount + packetCount));
    nplAdd("        Products:");
    nplAdd("            Inserted      %lu", prodCount);
    nplAdd("            Mean Rate     %g/s", prodCount/interval);
    nplAdd("    Since Start:");
    interval = duration(&now, &startTime);
    encodeDuration(buf, sizeof(buf), interval);
    nplAdd("        Duration          %s", buf);
    nplAdd("        Raw Data:");
    nplAdd("            Octets        %lu", CHAR_BIT*totalByteCount/8);
    nplAdd("            Mean Rate:");
    rate = (totalByteCount/interval)*(CHAR_BIT/8.0);
    nplAdd("                Octets    %g/s", rate);
    nplAdd("                Bits      %g/s", 8*rate);
    nplAdd("        Received packets:");
    nplAdd("            Number        %lu", totalPacketCount);
    nplAdd("            Mean Rate     %g/s", totalPacketCount/interval);
    nplAdd("        Missed packets:");
    nplAdd("            Number        %lu", totalMissedPacketCount);
    nplAdd("            %%             %g", 100.0 * totalMissedPacketCount /
            (totalMissedPacketCount + totalPacketCount));
    nplAdd("        Products:");
    nplAdd("            Inserted      %lu", totalProdCount);
    nplAdd("            Mean Rate     %g/s", totalProdCount/interval);
    nplAdd("----------------------------------------");

    nplLog(LOG_NOTICE);
    (void)setulogmask(logmask);

    reportTime = now;
}
Beispiel #2
0
/**
 * Reports statistics.
 */
static void reportStats(void)
{
    struct timeval          now;
    double                  interval;
    double                  rate;
    char                    buf[80];
    int                     logmask;
    unsigned long           byteCount;
    unsigned long           packetCount, missedPacketCount, prodCount;
    static unsigned long    totalPacketCount;
    static unsigned long    totalMissedPacketCount;
    static unsigned long    totalProdCount;
    static unsigned long    totalByteCount;

    (void)gettimeofday(&now, NULL);
    readerGetStatistics(reader, &byteCount);
    pmGetStatistics(productMaker, &packetCount, &missedPacketCount, &prodCount);

    totalByteCount += byteCount;
    totalPacketCount += packetCount;
    totalMissedPacketCount += missedPacketCount;
    totalProdCount += prodCount;

    logmask = setulogmask(LOG_UPTO(LOG_NOTICE));

    log_start("----------------------------------------");
    log_add("Ingestion Statistics:");
    log_add("    Since Previous Report (or Start):");
    interval = duration(&now, &reportTime);
    encodeDuration(buf, sizeof(buf), interval);
    log_add("        Duration          %s", buf);
    log_add("        Raw Data:");
    log_add("            Octets        %lu", CHAR_BIT*byteCount/8);
    log_add("            Mean Rate:");
    rate = (byteCount/interval)*(CHAR_BIT/8.0);
    log_add("                Octets    %g/s", rate);
    log_add("                Bits      %g/s", 8*rate);
    log_add("        Received packets:");
    log_add("            Number        %lu", packetCount);
    log_add("            Mean Rate     %g/s", packetCount/interval);
    log_add("        Missed packets:");
    log_add("            Number        %lu", missedPacketCount);
    log_add("            %%             %g",
            100.0 * missedPacketCount / (missedPacketCount + packetCount));
    log_add("        Products:");
    log_add("            Inserted      %lu", prodCount);
    log_add("            Mean Rate     %g/s", prodCount/interval);
    log_add("    Since Start:");
    interval = duration(&now, &startTime);
    encodeDuration(buf, sizeof(buf), interval);
    log_add("        Duration          %s", buf);
    log_add("        Raw Data:");
    log_add("            Octets        %lu", CHAR_BIT*totalByteCount/8);
    log_add("            Mean Rate:");
    rate = (totalByteCount/interval)*(CHAR_BIT/8.0);
    log_add("                Octets    %g/s", rate);
    log_add("                Bits      %g/s", 8*rate);
    log_add("        Received packets:");
    log_add("            Number        %lu", totalPacketCount);
    log_add("            Mean Rate     %g/s", totalPacketCount/interval);
    log_add("        Missed packets:");
    log_add("            Number        %lu", totalMissedPacketCount);
    log_add("            %%             %g", 100.0 * totalMissedPacketCount /
            (totalMissedPacketCount + totalPacketCount));
    log_add("        Products:");
    log_add("            Inserted      %lu", totalProdCount);
    log_add("            Mean Rate     %g/s", totalProdCount/interval);

#ifdef RETRANS_SUPPORT
   if(retrans_xmit_enable == OPTION_ENABLE){
    log_add("       Retransmissions:");	
    log_add("           Requested     %lu", total_prods_retrans_rqstd);	
    log_add("           Received      %lu", total_prods_retrans_rcvd);	
    log_add("           Duplicates    %lu", total_prods_retrans_rcvd_notlost);	
    log_add("           No duplicates %lu", total_prods_retrans_rcvd_lost);	
    }
#endif 
    log_add("----------------------------------------");

    log_log(LOG_NOTICE);
    (void)setulogmask(logmask);

    reportTime = now;
}