Skip to content

Commit 2f88395

Browse files
authored
add tracing events (#190)
* add tracing events * only fail build on critical vuln
1 parent 516f410 commit 2f88395

File tree

4 files changed

+19
-7
lines changed

4 files changed

+19
-7
lines changed

.github/workflows/build-test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ jobs:
3131
scan-type: 'fs'
3232
format: 'table'
3333
scan-ref: '.'
34-
severity: 'HIGH,CRITICAL'
34+
severity: 'CRITICAL'
3535
ignore-unfixed: true
3636
exit-code: 1
3737

src/main/java/no/ssb/dlp/pseudo/service/pseudo/PseudoField.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package no.ssb.dlp.pseudo.service.pseudo;
22

33
import com.google.common.base.Stopwatch;
4+
import io.opentelemetry.api.trace.Span;
45
import io.opentelemetry.instrumentation.annotations.AddingSpanAttributes;
56
import io.opentelemetry.instrumentation.annotations.SpanAttribute;
67
import io.opentelemetry.instrumentation.annotations.WithSpan;
@@ -19,6 +20,7 @@
1920
import no.ssb.dlp.pseudo.service.pseudo.metadata.FieldMetric;
2021
import no.ssb.dlp.pseudo.service.pseudo.metadata.PseudoMetadataProcessor;
2122

23+
import java.time.Instant;
2224
import java.util.List;
2325
import java.util.Map;
2426
import java.util.Objects;
@@ -84,12 +86,13 @@ public PseudoField(String name, String pattern, String pseudoFunc, EncryptedKeys
8486
* @param values The values to be processed.
8587
* @return A Flowable stream that processes the field values by applying the configured pseudo rules, and returns them as a lists of strings.
8688
*/
87-
@WithSpan
89+
@AddingSpanAttributes
8890
public Flowable<String> process(@SpanAttribute("pseudoConfigSplitter") PseudoConfigSplitter pseudoConfigSplitter,
8991
@SpanAttribute("recordProcessorFactory") RecordMapProcessorFactory recordProcessorFactory,
9092
@SpanAttribute("values") List<String> values,
9193
@SpanAttribute("pseudoOperation") PseudoOperation pseudoOperation,
9294
String correlationId) {
95+
Span.current().addEvent("process pseudo field", Instant.now());
9396
Stopwatch stopwatch = Stopwatch.createStarted();
9497
List<PseudoConfig> pseudoConfigs = pseudoConfigSplitter.splitIfNecessary(this.getPseudoConfig());
9598

src/main/java/no/ssb/dlp/pseudo/service/pseudo/RecordMapProcessorFactory.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import com.github.benmanes.caffeine.cache.LoadingCache;
44
import com.google.crypto.tink.Aead;
5+
import io.opentelemetry.api.trace.Span;
6+
import io.opentelemetry.instrumentation.annotations.AddingSpanAttributes;
57
import io.opentelemetry.instrumentation.annotations.WithSpan;
68
import jakarta.inject.Singleton;
79
import lombok.RequiredArgsConstructor;
@@ -30,6 +32,7 @@
3032
import no.ssb.dlp.pseudo.service.pseudo.metadata.FieldMetric;
3133
import no.ssb.dlp.pseudo.service.pseudo.metadata.PseudoMetadataProcessor;
3234

35+
import java.time.Instant;
3336
import java.util.Collection;
3437
import java.util.List;
3538
import java.util.Map;
@@ -47,8 +50,9 @@ public class RecordMapProcessorFactory {
4750
private final PseudoSecrets pseudoSecrets;
4851
private final LoadingCache<String, Aead> aeadCache;
4952

50-
@WithSpan
53+
@AddingSpanAttributes
5154
public RecordMapProcessor<PseudoMetadataProcessor> newPseudonymizeRecordProcessor(List<PseudoConfig> pseudoConfigs, String correlationId) {
55+
Span.current().addEvent("newPseudonymizeRecordProcessor", Instant.now());
5256
ValueInterceptorChain chain = new ValueInterceptorChain();
5357
PseudoMetadataProcessor metadataProcessor = new PseudoMetadataProcessor(correlationId);
5458

src/main/java/no/ssb/dlp/pseudo/service/pseudo/metadata/PseudoMetadataProcessor.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
package no.ssb.dlp.pseudo.service.pseudo.metadata;
22

3-
import io.opentelemetry.instrumentation.annotations.WithSpan;
3+
import io.opentelemetry.api.trace.Span;
4+
import io.opentelemetry.instrumentation.annotations.AddingSpanAttributes;
45
import io.reactivex.processors.ReplayProcessor;
56
import lombok.Value;
67
import no.ssb.dlp.pseudo.core.util.Json;
78
import org.reactivestreams.Publisher;
89

10+
import java.time.Instant;
911
import java.util.HashSet;
1012
import java.util.LinkedHashMap;
1113
import java.util.Map;
@@ -35,16 +37,19 @@ public void addLog(String log) {
3537
public void addMetric(FieldMetric fieldMetric) {
3638
metrics.onNext(fieldMetric);
3739
}
38-
@WithSpan
40+
@AddingSpanAttributes
3941
public Publisher<String> getMetadata() {
42+
Span.current().addEvent("getMetadata", Instant.now());
4043
return datadocMetadata.map(FieldMetadata::toDatadocVariable).map(Json::from);
4144
}
42-
@WithSpan
45+
@AddingSpanAttributes
4346
public Publisher<String> getLogs() {
47+
Span.current().addEvent("getLogs", Instant.now());
4448
return logs.map(Json::from);
4549
}
46-
@WithSpan
50+
@AddingSpanAttributes
4751
public Publisher<String> getMetrics() {
52+
Span.current().addEvent("getMetrics", Instant.now());
4853
return metrics.groupBy(FieldMetric::name)
4954
.flatMapSingle(group ->
5055
group.count().map(c -> Map.of(group.getKey(), c.intValue())

0 commit comments

Comments
 (0)