| 631 | } |
| 632 | |
| 633 | static void |
| 634 | stats_process_write(TSCont contp, TSEvent event, stats_state *my_state) |
| 635 | { |
| 636 | if (event == TS_EVENT_VCONN_WRITE_READY) { |
| 637 | if (my_state->body_written == 0) { |
| 638 | my_state->body_written = 1; |
| 639 | switch (my_state->output_format) { |
| 640 | case output_format_t::JSON_OUTPUT: |
| 641 | json_out_stats(my_state); |
| 642 | break; |
| 643 | case output_format_t::CSV_OUTPUT: |
| 644 | csv_out_stats(my_state); |
| 645 | break; |
| 646 | case output_format_t::PROMETHEUS_OUTPUT: |
| 647 | prometheus_out_stats(my_state); |
| 648 | break; |
| 649 | } |
| 650 | |
| 651 | if ((my_state->encoding == encoding_format_t::GZIP) || (my_state->encoding == encoding_format_t::DEFLATE)) { |
| 652 | gzip_out_stats(my_state); |
| 653 | } |
| 654 | #if HAVE_BROTLI_ENCODE_H |
| 655 | else if (my_state->encoding == encoding_format_t::BR) { |
| 656 | br_out_stats(my_state); |
| 657 | } |
| 658 | #endif |
| 659 | TSVIONBytesSet(my_state->write_vio, my_state->output_bytes); |
| 660 | } |
| 661 | TSVIOReenable(my_state->write_vio); |
| 662 | } else if (event == TS_EVENT_VCONN_WRITE_COMPLETE) { |
| 663 | stats_cleanup(contp, my_state); |
| 664 | } else if (event == TS_EVENT_ERROR) { |
| 665 | TSError("[%s] stats_process_write: Received TS_EVENT_ERROR", PLUGIN_NAME); |
| 666 | } else { |
| 667 | TSReleaseAssert(!"Unexpected Event"); |
| 668 | } |
| 669 | } |
| 670 | |
| 671 | static int |
| 672 | stats_dostuff(TSCont contp, TSEvent event, void *edata) |
no test coverage detected