diff options
Diffstat (limited to 'src/storage')
| -rw-r--r-- | src/storage/store.c | 23 | ||||
| -rw-r--r-- | src/storage/store.h | 3 |
2 files changed, 26 insertions, 0 deletions
diff --git a/src/storage/store.c b/src/storage/store.c index 060c6f6..e7ade28 100644 --- a/src/storage/store.c +++ b/src/storage/store.c @@ -1963,6 +1963,29 @@ tiny_store_health(const tiny_store_t *store, tiny_store_health_t *health) } for (index = 0; index < store->entry_count; ++index) { + const tiny_message_t *message = &store->entries[index].message; + size_t item; + health->memory_entry_bytes += sizeof(store->entries[index]); + health->memory_body_bytes += message->session_id ? strlen(message->session_id) + 1U : 0; + health->memory_body_bytes += message->content ? strlen(message->content) + 1U : 0; + health->memory_metadata_bytes + += message->metadata.tool_call_id ? strlen(message->metadata.tool_call_id) + 1U : 0; + health->memory_metadata_bytes + += message->metadata.summary ? strlen(message->metadata.summary) + 1U : 0; + health->memory_metadata_bytes + += message->metadata.relation_count * sizeof(*message->metadata.relations); + for (item = 0; item < message->metadata.tag_count; ++item) + { + health->memory_metadata_bytes += strlen(message->metadata.tags[item]) + 1U; + } + health->memory_metadata_bytes + += message->metadata.tag_count * sizeof(*message->metadata.tags); + health->memory_metadata_bytes + += message->metadata.source_count * sizeof(*message->metadata.source_message_ids); + for (item = 0; item < message->metadata.source_count; ++item) + { + health->memory_metadata_bytes += strlen(message->metadata.source_message_ids[item]) + 1U; + } if (store->entries[index].deleted) { health->deleted_messages++; diff --git a/src/storage/store.h b/src/storage/store.h index adeae35..9efb02a 100644 --- a/src/storage/store.h +++ b/src/storage/store.h @@ -45,6 +45,9 @@ typedef struct tiny_store_health uint64_t last_sequence; uint64_t update_records; uint64_t dead_bytes; + uint64_t memory_entry_bytes; + uint64_t memory_body_bytes; + uint64_t memory_metadata_bytes; uint64_t write_bytes; uint64_t write_calls; uint64_t flush_calls; |
