Hi, I am new to fdb cluster, I want to find a way to keep an audit log of the operations in fdb. (e.g., getrange,set,get and so on)
As I understand, analyzing transaction log or redo log maybe a way to fetch the operations, but I only find client trace logs in /var/log/foundationdb.
My question is where is the transaction log or redo log? Or is there any configuration in file foundationdb.cnf?
Currently FDB doesn’t produce audit logs. The transaction logs can be found in the data directory of your transaction process. But reading this data will be non-trivial and the used serialization format isn’t stable (so a tool reading this would need to be aware of different FDB versions). I think the way writing a tool that reads the tlog would be to integrate it into FDB.
This being said, reading the tlogs might not give you the information you need. The tlogs contain mostly a list of mutations (operation types and corresponding keys/values). But it doesn’t contain anything else really. You even lose transaction boundaries (only transaction batches, but these can contain an arbitrary number of transactions).
This being said, FDB will need audit logging pretty soon and we’re probably soon going to work on that (or if you want to speed it up, you could try to take a crack at it ). So what kind of information would you like to find in an audit log? What format would you like this log to be in?
I am glad to hear that fdb will have audit log soon, that is cool . I find the transaction log in data directory, and it is hard to read…
So I plan to record the operation from application, the format like below:
<FDB_Trace DateTime=“yyyy-mm-dd hh24:mi:ss” Application=“” class=“” function=“” Command=“” Key=“” Value=“”>
It can help me to locate the java code of application.