Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
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
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
# ignore Intellij files

tests/src/test/resources/files/raoresults/*.zip

# ignore Intellij files
.idea
*.iml

Expand Down
47 changes: 14 additions & 33 deletions checkstyle.xml
Original file line number Diff line number Diff line change
@@ -1,27 +1,13 @@
<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
"-//Puppy Crawl//DTD Check Configuration 1.2//EN"
"http://www.puppycrawl.com/dtds/configuration_1_2.dtd">
"-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
"https://checkstyle.org/dtds/configuration_1_3.dtd">
<module name="Checker">
<module name="FileTabCharacter"/>

<module name="NewlineAtEndOfFile"/>

<module name="RegexpHeader">
<property name="header" value="^/\*\n * Copyright \(c\) \d{4}, RTE \(http://www\.rte-france\.com\)\n \* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v\. 2\.0. If a copy of the MPL was not distributed with this\n \* file, You can obtain one at http://mozilla\.org/MPL/2\.0/.\n \*/"/>
<property name="fileExtensions" value="java"/>
</module>

<module name="RegexpMultiline">
<property name="format" value="(?:\n{2}\n+)|(?:\n{2}$)"/>
<property name="message" value="Multiple consecutive blank lines are not allowed."/>
</module>
<module name="FileTabCharacter"/>

<module name="RegexpMultiline">
<property name="format" value="\*\/\n\n+(@[A-Za-z]+\(?.*\)?)?(public|protected|private)?\s*(final)?\s*(class|interface|enum|abstract|record)"/>
<property name="message" value="No blank line allowed between Javadoc and class definition."/>
<property name="minimum" value="0"/>
<property name="maximum" value="0"/>
<module name="NewlineAtEndOfFile">
<property name="lineSeparator" value="lf_cr_crlf"/>
</module>

<module name="RegexpSingleline">
Expand All @@ -31,11 +17,10 @@
<property name="message" value="Line has trailing spaces."/>
</module>

<module name="SuppressWarningsFilter" />

<module name="Translation"/>

<module name="TreeWalker">
<module name="SuppressWarningsHolder"/>
<module name="AbbreviationAsWordInName"/>
<module name="AbstractClassName"/>
<module name="ArrayTypeStyle"/>
Expand All @@ -47,25 +32,21 @@
<property name="allowNoEmptyLineBetweenFields" value="true"/>
<property name="allowMultipleEmptyLines" value="false"/>
<property name="allowMultipleEmptyLinesInsideClassMembers" value="false"/>
<property name="tokens" value="PACKAGE_DEF, IMPORT, CLASS_DEF, ENUM_DEF, INTERFACE_DEF, RECORD_DEF, STATIC_INIT, INSTANCE_INIT, METHOD_DEF, CTOR_DEF, VARIABLE_DEF"/>
<property name="tokens" value="IMPORT, CLASS_DEF, INTERFACE_DEF, STATIC_INIT, INSTANCE_INIT, METHOD_DEF, CTOR_DEF, VARIABLE_DEF"/>
</module>
<module name="EmptyStatement"/>
<module name="EqualsHashCode"/>
<module name="FinalClass"/>
<module name="HideUtilityClassConstructor"/>
<module name="IllegalImport"/>
<module name="Indentation"/>
<module name="JavadocType">
<property name="scope" value="private"/>
<property name="authorFormat" value="[A-Za-z._ -]+ \{@literal &lt;[A-Za-z._-]+ at [A-Za-z._-]+\.[a-z]+&gt;}"/>
<property name="allowMissingParamTags" value="true"/>
</module>
<module name="LeftCurly"/>
<module name="LocalFinalVariableName"/>
<module name="LocalVariableName"/>
<module name="MemberName"/>
<module name="MethodName"/>
<module name="MethodParamPad"/>
<module name="ModifierOrder"/>
<module name="MultipleVariableDeclarations"/>
<module name="MutableException"/>
<module name="NeedBraces"/>
Expand All @@ -76,10 +57,6 @@
<module name="ParameterName"/>
<module name="ParenPad"/>
<module name="RedundantImport"/>
<module name="Regexp">
<property name="format" value="@author"/>
</module>
<module name="RequireEmptyLineBeforeBlockTagGroup"/>
<module name="RightCurly"/>
<module name="SimplifyBooleanExpression"/>
<module name="SimplifyBooleanReturn"/>
Expand All @@ -90,6 +67,10 @@
<module name="UnusedImports"/>
<module name="UpperEll"/>
<module name="WhitespaceAfter"/>
<module name="WhitespaceAround"/>
<module name="WhitespaceAround">
<property name="ignoreEnhancedForColon" value="false"/>
</module>
<module name="SingleSpaceSeparator"/>
</module>
</module>
<module name="SuppressWarningsFilter"/>
</module>
30 changes: 30 additions & 0 deletions commons/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,36 @@
<artifactId>slf4j-api</artifactId>
</dependency>

<!-- OPEN TELEMETRY -->
<dependency>
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-sdk</artifactId>
</dependency>
<dependency>
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-sdk-logs</artifactId>
</dependency>
<dependency>
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-sdk-metrics</artifactId>
</dependency>
<dependency>
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-api</artifactId>
</dependency>
<dependency>
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-exporter-otlp</artifactId>
</dependency>
<dependency>
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-exporter-logging</artifactId>
</dependency>
<dependency>
<groupId>io.opentelemetry.instrumentation</groupId>
<artifactId>opentelemetry-instrumentation-annotations</artifactId>
</dependency>

<!-- Test dependencies -->
<dependency>
<groupId>ch.qos.logback</groupId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

package com.powsybl.openrao.commons.logs;

import com.powsybl.openrao.commons.opentelemetry.OpenTelemetryReporter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand All @@ -18,27 +19,27 @@ public abstract class AbstractOpenRaoLogger implements OpenRaoLogger {

@Override
public void trace(String format, Object... arguments) {
logger.trace(format, arguments);
OpenTelemetryReporter.trace(logger, format, arguments);
}

@Override
public void info(String format, Object... arguments) {
logger.info(format, arguments);
OpenTelemetryReporter.info(logger, format, arguments);
}

@Override
public void warn(String format, Object... arguments) {
logger.warn(format, arguments);
OpenTelemetryReporter.warn(logger, format, arguments);
}

@Override
public void error(String format, Object... arguments) {
logger.error(format, arguments);
OpenTelemetryReporter.error(logger, format, arguments);
}

@Override
public void debug(String format, Object... arguments) {
logger.debug(format, arguments);
OpenTelemetryReporter.debug(logger, format, arguments);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
/*
* Copyright (c) 2021, RTE (http://www.rte-france.com)
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/

package com.powsybl.openrao.commons.opentelemetry;

import io.opentelemetry.api.trace.Span;
import io.opentelemetry.api.trace.StatusCode;
import io.opentelemetry.api.trace.Tracer;
import io.opentelemetry.context.Context;
import io.opentelemetry.context.Scope;
import java.util.Optional;
import javax.annotation.Nullable;

/**
* @author Fabrice Buscaylet {@literal <fabrice.buscaylet at artelys.com>}
*/
public class OpenTelemetryContext {

private final Optional<Span> span;
private final Optional<Context> context;

public OpenTelemetryContext(Tracer tracer, String spanName) {
var hasTracer = tracer != null;
if (hasTracer) {
var newSpan = tracer.spanBuilder(spanName).startSpan();
this.context = Optional.of(newSpan.storeInContext(Context.current()));
this.span = Optional.of(newSpan);
} else {
this.span = Optional.empty();
this.context = Optional.empty();
}
}

@Nullable
public Scope makeCurrent() {
return context.map(Context::makeCurrent).orElse(null);
}

public void addEvent(String name) {
span.ifPresent(s -> s.addEvent(name));
}

public void setStatus(StatusCode statusCode) {
span.ifPresent(s -> s.setStatus(statusCode));
}

public void setStatus(StatusCode statusCode, String description) {
span.ifPresent(s -> s.setStatus(statusCode, description));
}

public void end() {
span.ifPresent(Span::end);
}

public void recordException(Exception e) {
span.ifPresent(s -> s.recordException(e));
}

}
Loading