Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
8962041
RUM-13949 Add timeseries JSON schemas and regenerate API surface
satween May 12, 2026
96392b6
RUM-13949: Regenerate API surface for timeseries-only changes on this…
satween May 13, 2026
7291ea8
RUM-13949: Drop Rum prefix from timeseries model names
satween May 13, 2026
b6b5268
Merge pull request #3431 from DataDog/tvaleev/feature/RUM-13949/times…
satween May 14, 2026
7b836ae
Merge pull request #3448 from DataDog/develop
gh-worker-dd-mergequeue-cf854d[bot] May 14, 2026
ad50863
Merge remote-tracking branch 'origin/develop' into tvaleev/timeseries…
satween May 26, 2026
8782c2c
Merge pull request #3472 from DataDog/tvaleev/timeseries-develop-merge
satween May 26, 2026
f9bfcd3
RUM-13949: Implement timeseries pipeline infrastructure
satween May 27, 2026
382e703
Merge pull request #3432 from DataDog/tvaleev/feature/RUM-13949/times…
satween May 28, 2026
dd92529
RUM-13949: Adds `CpuDatapointReader`, which reads CPU-usage metrics f…
satween May 12, 2026
99fbf30
Merge pull request #3433 from DataDog/tvaleev/feature/RUM-13949/times…
satween Jun 8, 2026
1ca0085
RUM-13949 Add memory timeseries serializer and session factory
satween May 12, 2026
03d113a
RUM-13949 Fix TimeseriesConfiguration and regenerate apiSurface
satween May 29, 2026
d0b680c
RUM-13949 Fix missing scale parameter in MemoryEventSerializer
satween Jun 8, 2026
d734d6d
RUM-13949 Make TimeseriesConfiguration properties internal, fix linter
satween Jun 9, 2026
5ad5017
Merge pull request #3434 from DataDog/tvaleev/feature/RUM-13949/times…
satween Jun 9, 2026
045a630
RUM-13949 Wire timeseries collection into RUM session lifecycle
satween May 12, 2026
af31b3d
RUM-13949 Fix missing brace, opt-in annotation, and test filename
satween Jun 11, 2026
bdd5f21
RUM-13949 Add end-to-end timeseries verification tests with CSV fixtures
satween May 12, 2026
6e1f3b8
RUM-13949: Add count field to e2e timeseries fixture expectations
satween May 28, 2026
597959c
Merge pull request #3435 from DataDog/tvaleev/feature/RUM-13949/times…
satween Jun 12, 2026
45037a1
Merge pull request #3436 from DataDog/tvaleev/feature/RUM-13949/times…
satween Jun 12, 2026
1a373dc
Merge remote-tracking branch 'origin/develop' into tvaleev/feature/ti…
satween Jun 18, 2026
4e287bb
Merge pull request #3554 from DataDog/tvaleev/feature/timeseries-RUM-…
satween Jun 18, 2026
05df854
RUM-16325: Share knownTypes with OneOfPrimitiveOptionGenerator
satween Jun 18, 2026
147653a
RUM-16325: Updating schema
satween Jun 18, 2026
cba54e4
Merge pull request #3555 from DataDog/tvaleev/feature/timeseries-RUM-…
satween Jun 22, 2026
34c8284
RUM-16325: Post-review fixes
satween Jun 19, 2026
9593a5e
Merge pull request #3556 from DataDog/tvaleev/feature/timeseries-RUM-…
satween Jun 23, 2026
cc68105
RUM-16325: Widget support
satween Jun 23, 2026
8236da3
Merge pull request #3568 from DataDog/tvaleev/feature/timeseries-RUM-…
satween Jun 24, 2026
11a1211
RUM-16325: Dogfooding fixes
satween Jul 3, 2026
b9217f2
Merge pull request #3609 from DataDog/tvaleev/feature/timeseries-dogf…
satween Jul 7, 2026
9830aa1
RUM-16325: Updating to recent schema
satween Jul 14, 2026
ae72075
Merge pull request #3632 from DataDog/tvaleev/feature/RUM-16325-updgr…
satween Jul 17, 2026
e36e73d
Merge remote-tracking branch 'origin/develop' into tvaleev/feature/RU…
satween Jul 22, 2026
eea89f7
Merge remote-tracking branch 'origin/develop' into tvaleev/feature/RU…
satween Jul 31, 2026
2337494
Merge remote-tracking branch 'origin/develop' into tvaleev/feature/RU…
satween Jul 31, 2026
50f5169
RUM-17613: Fix detekt
satween Jul 31, 2026
5d39d28
Merge pull request #3687 from DataDog/tvaleev/feature/RUM-17613-2
satween Jul 31, 2026
828648b
Merge remote-tracking branch 'origin/develop' into tvaleev/feature/ti…
satween Aug 11, 2026
e4fa588
Merge pull request #3702 from DataDog/tvaleev/feature/timeseries-upd-…
gh-worker-dd-mergequeue-cf854d[bot] Aug 11, 2026
e95d0fd
RUM-17613: Rename Timeseries abstractions to TimeseriesCollector
satween Aug 14, 2026
4ce57a5
RUM-17613: Fix stale TimeseriesCollector KDoc reference in CsvCollector
satween Aug 14, 2026
f746ef2
Merge pull request #3716 from DataDog/tvaleev/feature/RUM-17613-1-col…
satween Aug 14, 2026
7be7bac
RUM-17613: Build timeseries events from the shared RUM schema
satween Aug 14, 2026
2a74f34
RUM-17613: Add Array.toSet() to detekt safe third-party calls list
satween Aug 17, 2026
c34ab47
RUM-17613: Drop unused timeseries connectivity mappers
satween Aug 17, 2026
a701f3e
RUM-17613: Drop orphaned TimeseriesAttributes constants
satween Aug 17, 2026
a31ef2f
Merge pull request #3712 from DataDog/tvaleev/feature/RUM-17613-2-tim…
satween Aug 17, 2026
340e8c5
RUM-17613: Pass the live RUM context to timeseries pipelines
satween Aug 14, 2026
3b43c92
Merge pull request #3717 from DataDog/tvaleev/feature/RUM-17613-3-bac…
satween Aug 17, 2026
2f61d4f
RUM-17613: Stop collecting timeseries in background and flush the batch
satween Aug 14, 2026
febc38d
RUM-17613: Capture the flush context when leaving foreground
satween Aug 18, 2026
d3594b5
Merge pull request #3719 from DataDog/tvaleev/feature/RUM-17613-3b-ba…
satween Aug 18, 2026
77f6e7e
RUM-17613: Add integration tests for timeseries collection
satween Aug 14, 2026
ff49591
Merge pull request #3718 from DataDog/tvaleev/feature/RUM-17613-4-int…
satween Aug 18, 2026
d00a8b3
RUM-18101: Supporting timeseries apiUsage telemetry.
satween Aug 19, 2026
cd37cca
Merge pull request #3731 from DataDog/tvaleev/feature/RUM-18101-times…
satween Aug 19, 2026
f6fd6bd
Merge remote-tracking branch 'origin/develop' into tvaleev/feature/de…
satween Aug 21, 2026
4e1a746
Merge pull request #3750 from DataDog/tvaleev/feature/dev-2-timeseries
satween Aug 21, 2026
d018f0f
Merge remote-tracking branch 'origin/develop' into feature/develop-2-…
satween Aug 24, 2026
a0dee4e
Fix merge conflicts
satween Aug 24, 2026
1ebcac6
Merge pull request #3760 from DataDog/tvaleev/feature/develop-2-times…
satween Aug 24, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ class FileGenerator(

private val classGenerator = ClassGenerator(packageName, knownTypes)
private val enumGenerator = EnumClassGenerator(packageName, knownTypes)
private val oneOfPrimitiveOptionGenerator = OneOfPrimitiveOptionGenerator(packageName)
private val oneOfPrimitiveOptionGenerator = OneOfPrimitiveOptionGenerator(packageName, knownTypes)

private val multiClassGenerator = MultiClassGenerator(
classGenerator = classGenerator,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,11 @@ import com.squareup.kotlinpoet.TypeSpec
import com.squareup.kotlinpoet.jvm.throws

class OneOfPrimitiveOptionGenerator(
packageName: String
packageName: String,
knownTypes: MutableSet<KotlinTypeWrapper> = mutableSetOf()
) : TypeSpecGenerator<TypeDefinition.Primitive>(
packageName,
mutableSetOf()
knownTypes
) {
override fun generate(
definition: TypeDefinition.Primitive,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,10 @@ class JsonSchemaReaderTest {
arrayOf("one_of_nested", WeirdCombo),
arrayOf("required_for_other_all_of", RequiredForOtherAllOf),
arrayOf("path_array_with_integer", PathArrayWithInteger),
arrayOf("path_array_with_number", PathArrayWithNumber)
arrayOf("path_array_with_number", PathArrayWithNumber),
arrayOf("one_of_primitive_ref", OneOfPrimitiveRef),
arrayOf("cross_file_one_of_primitive_a", CrossFileOneOfPrimitiveA),
arrayOf("cross_file_one_of_primitive_b", CrossFileOneOfPrimitiveB)
)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -211,7 +211,10 @@ class ModelValidationTest {
arrayOf("sets", OutputInfo("Video")),
arrayOf("one_of_nested", OutputInfo("WeirdCombo")),
arrayOf("path_array_with_integer", OutputInfo("PathArrayWithInteger")),
arrayOf("path_array_with_number", OutputInfo("PathArrayWithNumber"))
arrayOf("path_array_with_number", OutputInfo("PathArrayWithNumber")),
arrayOf("one_of_primitive_ref", OutputInfo("OneOfPrimitiveRef")),
arrayOf("cross_file_one_of_primitive_a", OutputInfo("CrossFileOneOfPrimitiveA")),
arrayOf("cross_file_one_of_primitive_b", OutputInfo("CrossFileOneOfPrimitiveB"))
)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1112,3 +1112,47 @@ val PathArrayWithNumber = TypeDefinition.Class(
),
required = setOf("path")
)

val OneOfPrimitivePath = TypeDefinition.OneOfClass(
name = "Path",
options = listOf(
TypeDefinition.OneOfClass.Option.Primitive(
primitive = TypeDefinition.Primitive(
type = JsonPrimitiveType.STRING,
description = "string element"
)
),
TypeDefinition.OneOfClass.Option.Primitive(
primitive = TypeDefinition.Primitive(
type = JsonPrimitiveType.INTEGER,
description = "integer element"
)
)
),
description = "This is a definition of a path"
)

val OneOfPrimitiveRef = TypeDefinition.Class(
name = "OneOfPrimitiveRef",
properties = listOf(
TypeProperty("from", OneOfPrimitivePath),
TypeProperty("to", OneOfPrimitivePath)
),
required = setOf("from")
)

val CrossFileOneOfPrimitiveA = TypeDefinition.Class(
name = "CrossFileOneOfPrimitiveA",
properties = listOf(
TypeProperty("path", OneOfPrimitivePath)
),
required = setOf("path")
)

val CrossFileOneOfPrimitiveB = TypeDefinition.Class(
name = "CrossFileOneOfPrimitiveB",
properties = listOf(
TypeProperty("path", OneOfPrimitivePath)
),
required = setOf("path")
)
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ import com.datadog.gradle.plugin.jsonschema.Book
import com.datadog.gradle.plugin.jsonschema.Comment
import com.datadog.gradle.plugin.jsonschema.Company
import com.datadog.gradle.plugin.jsonschema.Conflict
import com.datadog.gradle.plugin.jsonschema.CrossFileOneOfPrimitiveA
import com.datadog.gradle.plugin.jsonschema.CrossFileOneOfPrimitiveB
import com.datadog.gradle.plugin.jsonschema.Customer
import com.datadog.gradle.plugin.jsonschema.DateTime
import com.datadog.gradle.plugin.jsonschema.Delivery
Expand All @@ -23,6 +25,7 @@ import com.datadog.gradle.plugin.jsonschema.Jacket
import com.datadog.gradle.plugin.jsonschema.Location
import com.datadog.gradle.plugin.jsonschema.Message
import com.datadog.gradle.plugin.jsonschema.NoOpLogger
import com.datadog.gradle.plugin.jsonschema.OneOfPrimitiveRef
import com.datadog.gradle.plugin.jsonschema.Opus
import com.datadog.gradle.plugin.jsonschema.Order
import com.datadog.gradle.plugin.jsonschema.Paper
Expand Down Expand Up @@ -124,7 +127,10 @@ class FileGeneratorTest {
arrayOf(Video, "Video"),
arrayOf(WeirdCombo, "WeirdCombo"),
arrayOf(PathArrayWithInteger, "PathArrayWithInteger"),
arrayOf(PathArrayWithNumber, "PathArrayWithNumber")
arrayOf(PathArrayWithNumber, "PathArrayWithNumber"),
arrayOf(OneOfPrimitiveRef, "OneOfPrimitiveRef"),
arrayOf(CrossFileOneOfPrimitiveA, "CrossFileOneOfPrimitiveA"),
arrayOf(CrossFileOneOfPrimitiveB, "CrossFileOneOfPrimitiveB")
)
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
/*
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache License Version 2.0.
* This product includes software developed at Datadog (https://www.datadoghq.com/).
* Copyright 2016-Present Datadog, Inc.
*/

package com.example.forgery

import com.example.model.CrossFileOneOfPrimitiveA
import fr.xgouchet.elmyr.Forge
import fr.xgouchet.elmyr.ForgeryFactory

internal class CrossFileOneOfPrimitiveAForgeryFactory : ForgeryFactory<CrossFileOneOfPrimitiveA> {
override fun getForgery(forge: Forge): CrossFileOneOfPrimitiveA {
return CrossFileOneOfPrimitiveA(
path = forge.anElementFrom(
listOf(
CrossFileOneOfPrimitiveA.Path.String(forge.aString()),
CrossFileOneOfPrimitiveA.Path.Long(forge.aLong())
)
)
)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
/*
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache License Version 2.0.
* This product includes software developed at Datadog (https://www.datadoghq.com/).
* Copyright 2016-Present Datadog, Inc.
*/

package com.example.forgery

import com.example.model.CrossFileOneOfPrimitiveB
import fr.xgouchet.elmyr.Forge
import fr.xgouchet.elmyr.ForgeryFactory

internal class CrossFileOneOfPrimitiveBForgeryFactory : ForgeryFactory<CrossFileOneOfPrimitiveB> {
override fun getForgery(forge: Forge): CrossFileOneOfPrimitiveB {
return CrossFileOneOfPrimitiveB(
path = forge.anElementFrom(
listOf(
CrossFileOneOfPrimitiveB.Path.String(forge.aString()),
CrossFileOneOfPrimitiveB.Path.Long(forge.aLong())
)
)
)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -40,5 +40,8 @@ internal class ModelForgeryConfigurator : ForgeConfigurator {
forge.addFactory(WeirdComboForgeryFactory())
forge.addFactory(PathArrayWithIntegerForgeryFactory())
forge.addFactory(PathArrayWithNumberForgeryFactory())
forge.addFactory(OneOfPrimitiveRefForgeryFactory())
forge.addFactory(CrossFileOneOfPrimitiveAForgeryFactory())
forge.addFactory(CrossFileOneOfPrimitiveBForgeryFactory())
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
/*
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache License Version 2.0.
* This product includes software developed at Datadog (https://www.datadoghq.com/).
* Copyright 2016-Present Datadog, Inc.
*/

package com.example.forgery

import com.example.model.OneOfPrimitiveRef
import fr.xgouchet.elmyr.Forge
import fr.xgouchet.elmyr.ForgeryFactory

internal class OneOfPrimitiveRefForgeryFactory : ForgeryFactory<OneOfPrimitiveRef> {
override fun getForgery(forge: Forge): OneOfPrimitiveRef {
return OneOfPrimitiveRef(
from = forge.aPath(),
to = forge.aNullable { aPath() }
)
}

private fun Forge.aPath(): OneOfPrimitiveRef.Path {
return anElementFrom(
listOf(
OneOfPrimitiveRef.Path.String(aString()),
OneOfPrimitiveRef.Path.Long(aLong())
)
)
}
}
Loading
Loading