| 882 | } |
| 883 | |
| 884 | void |
| 885 | RecDumpRecords(RecT rec_type, RecDumpEntryCb callback, void *edata) |
| 886 | { |
| 887 | int i, num_records; |
| 888 | |
| 889 | num_records = g_num_records; |
| 890 | for (i = 0; i < num_records; i++) { |
| 891 | RecRecord *r = &(g_records[i]); |
| 892 | if ((rec_type == RECT_NULL) || (rec_type & r->rec_type)) { |
| 893 | rec_mutex_acquire(&(r->lock)); |
| 894 | callback(r->rec_type, edata, r->registered, r->name, r->data_type, &r->data); |
| 895 | rec_mutex_release(&(r->lock)); |
| 896 | } |
| 897 | } |
| 898 | |
| 899 | // Dump all new metrics as well (no "type" for them) |
| 900 | RecData datum; |
| 901 | |
| 902 | for (auto &&[name, val] : ts::Metrics::instance()) { |
| 903 | datum.rec_int = val; |
| 904 | callback(RECT_PLUGIN, edata, true, name.data(), TS_RECORDDATATYPE_INT, &datum); |
| 905 | } |
| 906 | } |
| 907 | |
| 908 | void |
| 909 | RecDumpRecordsHt(RecT rec_type) |
no test coverage detected