-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* WIP on Micrometer Observations * Added verification that metrics are measured * Fixed formatting * Fixed wrong status code method call * Converted to using around * Fixed compilation issues * prepare release 11.10 * [ci skip] updating versions to next development iteration 11.11-SNAPSHOT * Preparing for next development version * build(deps): bump json from 20220320 to 20220924 (#1768) Bumps [json](https://github.com/douglascrockford/JSON-java) from 20220320 to 20220924. - [Release notes](https://github.com/douglascrockford/JSON-java/releases) - [Changelog](https://github.com/stleary/JSON-java/blob/master/docs/RELEASES.md) - [Commits](https://github.com/douglascrockford/JSON-java/commits) --- updated-dependencies: - dependency-name: org.json:json dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Updated to latest micrometer changes * Enriches via clientInterceptors * Fixed the error in the DEFAULT instance * Reverts enriching of CLientInterceptor to achieve observability * build(deps): bump slf4j.version from 2.0.2 to 2.0.3 (#1769) Bumps `slf4j.version` from 2.0.2 to 2.0.3. Updates `slf4j-simple` from 2.0.2 to 2.0.3 - [Release notes](https://github.com/qos-ch/slf4j/releases) - [Commits](qos-ch/slf4j@v_2.0.2...v_2.0.3) Updates `slf4j-nop` from 2.0.2 to 2.0.3 - [Release notes](https://github.com/qos-ch/slf4j/releases) - [Commits](qos-ch/slf4j@v_2.0.2...v_2.0.3) Updates `slf4j-api` from 2.0.2 to 2.0.3 - [Release notes](https://github.com/qos-ch/slf4j/releases) - [Commits](qos-ch/slf4j@v_2.0.2...v_2.0.3) Updates `slf4j-jdk14` from 2.0.2 to 2.0.3 - [Release notes](https://github.com/qos-ch/slf4j/releases) - [Commits](qos-ch/slf4j@v_2.0.2...v_2.0.3) --- updated-dependencies: - dependency-name: org.slf4j:slf4j-simple dependency-type: direct:development update-type: version-update:semver-patch - dependency-name: org.slf4j:slf4j-nop dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.slf4j:slf4j-api dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.slf4j:slf4j-jdk14 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump kotlin.version from 1.7.10 to 1.7.20 (#1771) Bumps `kotlin.version` from 1.7.10 to 1.7.20. Updates `kotlin-stdlib-jdk8` from 1.7.10 to 1.7.20 - [Release notes](https://github.com/JetBrains/kotlin/releases) - [Changelog](https://github.com/JetBrains/kotlin/blob/v1.7.20/ChangeLog.md) - [Commits](JetBrains/kotlin@v1.7.10...v1.7.20) Updates `kotlin-reflect` from 1.7.10 to 1.7.20 - [Release notes](https://github.com/JetBrains/kotlin/releases) - [Changelog](https://github.com/JetBrains/kotlin/blob/v1.7.20/ChangeLog.md) - [Commits](JetBrains/kotlin@v1.7.10...v1.7.20) Updates `kotlin-maven-plugin` from 1.7.10 to 1.7.20 --- updated-dependencies: - dependency-name: org.jetbrains.kotlin:kotlin-stdlib-jdk8 dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.jetbrains.kotlin:kotlin-reflect dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.jetbrains.kotlin:kotlin-maven-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump asm from 9.3 to 9.4 (#1777) Bumps asm from 9.3 to 9.4. --- updated-dependencies: - dependency-name: org.ow2.asm:asm dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Applied latest changes of Micrometer * Polish * Upgraded Micrometer to 1.10.0' * Alternative micrometer observation using capability * Ban 'repositories' * Applied my own review suggestions ;) * Polish Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Marvin Froeder <marvin.froeder@dovetailstudios.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Marvin Froeder <marvin.froeder@police.govt.nz> Co-authored-by: Marvin Froeder <velo@users.noreply.github.com>
- Loading branch information
1 parent
2bfc815
commit a3d82f8
Showing
14 changed files
with
614 additions
and
45 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
72 changes: 72 additions & 0 deletions
72
micrometer/src/main/java/feign/micrometer/DefaultFeignObservationConvention.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,72 @@ | ||
/* | ||
* Copyright 2012-2022 The Feign Authors | ||
* | ||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except | ||
* in compliance with the License. You may obtain a copy of the License at | ||
* | ||
* http://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
* Unless required by applicable law or agreed to in writing, software distributed under the License | ||
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express | ||
* or implied. See the License for the specific language governing permissions and limitations under | ||
* the License. | ||
*/ | ||
package feign.micrometer; | ||
|
||
import feign.Request; | ||
import feign.Response; | ||
import io.micrometer.common.KeyValues; | ||
import io.micrometer.common.lang.Nullable; | ||
|
||
/** | ||
* Default implementation of {@link FeignObservationConvention}. | ||
* | ||
* @since 12.1 | ||
* @see FeignObservationConvention | ||
*/ | ||
public class DefaultFeignObservationConvention implements FeignObservationConvention { | ||
|
||
/** | ||
* Singleton instance of this convention. | ||
*/ | ||
public static final DefaultFeignObservationConvention INSTANCE = | ||
new DefaultFeignObservationConvention(); | ||
|
||
// There is no need to instantiate this class multiple times, but it may be extended, | ||
// hence protected visibility. | ||
protected DefaultFeignObservationConvention() {} | ||
|
||
@Override | ||
public String getName() { | ||
return "http.client.requests"; | ||
} | ||
|
||
@Override | ||
public String getContextualName(FeignContext context) { | ||
return "HTTP " + getMethodString(context.getCarrier()); | ||
} | ||
|
||
@Override | ||
public KeyValues getLowCardinalityKeyValues(FeignContext context) { | ||
String templatedUrl = context.getCarrier().requestTemplate().methodMetadata().template().url(); | ||
return KeyValues.of( | ||
FeignObservationDocumentation.HttpClientTags.METHOD | ||
.withValue(getMethodString(context.getCarrier())), | ||
FeignObservationDocumentation.HttpClientTags.URI | ||
.withValue(templatedUrl), | ||
FeignObservationDocumentation.HttpClientTags.STATUS | ||
.withValue(getStatusValue(context.getResponse()))); | ||
} | ||
|
||
String getStatusValue(@Nullable Response response) { | ||
return response != null ? String.valueOf(response.status()) : "CLIENT_ERROR"; | ||
} | ||
|
||
String getMethodString(@Nullable Request request) { | ||
if (request == null) { | ||
return "UNKNOWN"; | ||
} | ||
return request.httpMethod().name(); | ||
} | ||
|
||
} |
34 changes: 34 additions & 0 deletions
34
micrometer/src/main/java/feign/micrometer/FeignContext.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
/* | ||
* Copyright 2012-2022 The Feign Authors | ||
* | ||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except | ||
* in compliance with the License. You may obtain a copy of the License at | ||
* | ||
* http://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
* Unless required by applicable law or agreed to in writing, software distributed under the License | ||
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express | ||
* or implied. See the License for the specific language governing permissions and limitations under | ||
* the License. | ||
*/ | ||
package feign.micrometer; | ||
|
||
import feign.Request; | ||
import feign.Response; | ||
import io.micrometer.observation.transport.RequestReplySenderContext; | ||
import io.micrometer.observation.transport.SenderContext; | ||
|
||
/** | ||
* A {@link SenderContext} for Feign. | ||
* | ||
* @author Marcin Grzejszczak | ||
* @since 12.1 | ||
*/ | ||
public class FeignContext extends RequestReplySenderContext<Request, Response> { | ||
|
||
public FeignContext(Request request) { | ||
super(Request::header); | ||
setCarrier(request); | ||
} | ||
|
||
} |
31 changes: 31 additions & 0 deletions
31
micrometer/src/main/java/feign/micrometer/FeignObservationConvention.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
/* | ||
* Copyright 2012-2022 The Feign Authors | ||
* | ||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except | ||
* in compliance with the License. You may obtain a copy of the License at | ||
* | ||
* http://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
* Unless required by applicable law or agreed to in writing, software distributed under the License | ||
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express | ||
* or implied. See the License for the specific language governing permissions and limitations under | ||
* the License. | ||
*/ | ||
package feign.micrometer; | ||
|
||
import io.micrometer.observation.Observation; | ||
import io.micrometer.observation.ObservationConvention; | ||
|
||
/** | ||
* {@link ObservationConvention} for Feign. | ||
* | ||
* @since 12.1 | ||
*/ | ||
public interface FeignObservationConvention extends ObservationConvention<FeignContext> { | ||
|
||
@Override | ||
default boolean supportsContext(Observation.Context context) { | ||
return context instanceof FeignContext; | ||
} | ||
|
||
} |
Oops, something went wrong.