diff options
author | Jess Balint <jbalint@gmail.com> | 2022-11-15 05:07:22 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2022-11-15 06:30:53 +0000 |
commit | 7be344b92d3af3fd8eb4542e594e084bed394fdc (patch) | |
tree | 8fb77406d0eb74fe46854c121454ddd7327cec3e /src/mongo/db/query/telemetry.h | |
parent | 148c522ffefc93dcc8227579b583691335cd4f2f (diff) | |
download | mongo-7be344b92d3af3fd8eb4542e594e084bed394fdc.tar.gz |
SERVER-71292 Redact all sensitive information in query #8731
Diffstat (limited to 'src/mongo/db/query/telemetry.h')
-rw-r--r-- | src/mongo/db/query/telemetry.h | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/mongo/db/query/telemetry.h b/src/mongo/db/query/telemetry.h index 3a2f41a7e4e..0e225d2f17e 100644 --- a/src/mongo/db/query/telemetry.h +++ b/src/mongo/db/query/telemetry.h @@ -107,6 +107,11 @@ public: } /** + * Redact a given telemetry key. + */ + const BSONObj& redactKey(const BSONObj& key) const; + + /** * Timestamp for when this query shape was added to the store. Set on construction. */ const Timestamp firstSeenTimestamp; @@ -130,6 +135,12 @@ public: AggregatedMetric docsScanned; AggregatedMetric keysScanned; + +private: + /** + * We cache the redacted key the first time it's computed. + */ + mutable boost::optional<BSONObj> _redactedKey; }; struct TelemetryPartitioner { @@ -139,9 +150,15 @@ struct TelemetryPartitioner { } }; +/** + * Average key size used to pad the metrics size. We store a cached redaction of the key in the + * TelemetryMetrics object. + */ +const size_t kAverageKeySize = 100; + struct ComputeEntrySize { size_t operator()(const TelemetryMetrics& entry) { - return sizeof(TelemetryMetrics); + return sizeof(TelemetryMetrics) + kAverageKeySize; } }; |