Skip to content

Commit c83efa4

Browse files
authored
Add more config options for disk buffering (signalfx#62)
1 parent cd65cd0 commit c83efa4

5 files changed

Lines changed: 17 additions & 7 deletions

File tree

ios/SpanDb.swift

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,13 @@ class SpanDb {
3434
private var sizeStmt_: OpaquePointer?
3535
private var initialized: Bool = false
3636

37-
init(path: String? = nil) {
38-
self.databasePath = path ?? SpanDb.makeDatabasePath() ?? ":memory:"
39-
37+
init(enableDiskBuffering: Bool, path: String? = nil) {
38+
if enableDiskBuffering {
39+
self.databasePath = path ?? SpanDb.makeDatabasePath() ?? ":memory:"
40+
} else {
41+
self.databasePath = ":memory:"
42+
}
43+
4044
var status = sqlite3_open(databasePath, &db_)
4145

4246
if status != SQLITE_OK {

ios/SpanToDiskExporter.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,9 @@ class SpanToDiskExporter : SpanExporter {
4242
private var totalSpansInserted: Int64 = 0
4343
private var checkpointCounter: Int64 = 0
4444

45-
init(spanDb: SpanDb, maxFileSizeBytes: Int64 = 25 * 1024 * 1024, truncationCheckpoint: Int64 = 512) {
45+
init(spanDb: SpanDb, limitDiskUsageMegabytes: Int64, truncationCheckpoint: Int64) {
4646
self.db = spanDb
47-
self.maxFileSizeBytes = maxFileSizeBytes
47+
self.maxFileSizeBytes = limitDiskUsageMegabytes * 1024 * 1024
4848
self.truncationCheckpoint = truncationCheckpoint
4949
}
5050

ios/SplunkOtelReactNative.swift

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,12 @@ class SplunkOtelReactNative: NSObject {
2121
private var appStartTime = Date()
2222
@objc(initialize:withResolver:withRejecter:)
2323
func initialize(config: Dictionary<String, Any>, resolve:RCTPromiseResolveBlock,reject:RCTPromiseRejectBlock) -> Void {
24-
let db = SpanDb()
25-
spanExporter = SpanToDiskExporter(spanDb: db)
24+
let enableDiskBuffering = config["enableDiskBuffering"] as? Bool ?? true
25+
let limitDiskUsageMegabytes = config["limitDiskUsageMegabytes"] as? Int64 ?? 25
26+
let truncationCheckpoint = config["truncationCheckpoint"] as? Int64 ?? 512
27+
28+
let db = SpanDb(enableDiskBuffering: enableDiskBuffering)
29+
spanExporter = SpanToDiskExporter(spanDb: db, limitDiskUsageMegabytes: limitDiskUsageMegabytes, truncationCheckpoint: truncationCheckpoint)
2630
initializeCrashReporting(exporter: spanExporter)
2731

2832
do {

src/native.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ export interface NativeSdKConfiguration {
4040
globalAttributes?: object;
4141
enableDiskBuffering?: boolean;
4242
limitDiskUsageMegabytes?: number;
43+
truncationCheckpoint?: number;
4344
}
4445

4546
export type AppStartInfo = {

src/splunkRum.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ export interface ReactNativeConfiguration {
5252
appStartEnabled?: boolean;
5353
enableDiskBuffering?: boolean;
5454
limitDiskUsageMegabytes?: number;
55+
truncationCheckpoint?: number;
5556
bufferTimeout?: number;
5657
bufferSize?: number;
5758
debug?: boolean;

0 commit comments

Comments
 (0)