Skip to content

Commit 0017e8b

Browse files
committed
Replace usages of standalone Powertools wording with alternative wording.
1 parent 26a4b1d commit 0017e8b

File tree

5 files changed

+36
-33
lines changed

5 files changed

+36
-33
lines changed

docs/FAQs.md

Lines changed: 23 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,15 @@ title: FAQs
33
description: Frequently Asked Questions
44
---
55

6-
76
## How can I use Powertools for AWS Lambda (Java) with Lombok?
87

9-
Powertools uses `aspectj-maven-plugin` to compile-time weave (CTW) aspects into the project. In case you want to use `Lombok` or other compile-time preprocessor for your project, it is required to change `aspectj-maven-plugin` configuration to enable in-place weaving feature. Otherwise the plugin will ignore changes introduced by `Lombok` and will use `.java` files as a source.
8+
Many utilities in this library use `aspectj-maven-plugin` to compile-time weave (CTW) aspects into the project. In case you want to use `Lombok` or other compile-time preprocessor for your project, it is required to change `aspectj-maven-plugin` configuration to enable in-place weaving feature. Otherwise the plugin will ignore changes introduced by `Lombok` and will use `.java` files as a source.
109

1110
To enable in-place weaving feature you need to use following `aspectj-maven-plugin` configuration:
1211

1312
```xml hl_lines="2-6"
1413
<configuration>
15-
<forceAjcCompile>true</forceAjcCompile>
14+
<forceAjcCompile>true</forceAjcCompile>
1615
<sources/>
1716
<weaveDirectories>
1817
<weaveDirectory>${project.build.directory}/classes</weaveDirectory>
@@ -29,14 +28,14 @@ To enable in-place weaving feature you need to use following `aspectj-maven-plug
2928

3029
## How can I use Powertools for AWS Lambda (Java) with Kotlin projects?
3130

32-
Powertools uses `aspectj-maven-plugin` to compile-time weave (CTW) aspects into the project. When using it with Kotlin projects, it is required to `forceAjcCompile`.
33-
No explicit configuration should be required for gradle projects.
31+
Many utilities use `aspectj-maven-plugin` to compile-time weave (CTW) aspects into the project. When using it with Kotlin projects, it is required to `forceAjcCompile`.
32+
No explicit configuration should be required for gradle projects.
3433

3534
To enable `forceAjcCompile` you need to use following `aspectj-maven-plugin` configuration:
3635

3736
```xml hl_lines="2"
3837
<configuration>
39-
<forceAjcCompile>true</forceAjcCompile>
38+
<forceAjcCompile>true</forceAjcCompile>
4039
...
4140
<aspectLibraries>
4241
<aspectLibrary>
@@ -49,17 +48,17 @@ To enable `forceAjcCompile` you need to use following `aspectj-maven-plugin` con
4948

5049
## How can I use Powertools for AWS Lambda (Java) with the AWS CRT HTTP Client?
5150

52-
Powertools uses the `url-connection-client` as the default HTTP client. The `url-connection-client` is a lightweight HTTP client, which keeps the impact on Lambda cold starts to a minimum.
53-
With the [announcement](https://aws.amazon.com/blogs/developer/announcing-availability-of-the-aws-crt-http-client-in-the-aws-sdk-for-java-2-x/) of the `aws-crt-client` a new HTTP client has been released, which offers faster SDK startup time and smaller memory footprint.
51+
Utilities relying on AWS SDK clients use the `url-connection-client` as the default HTTP client. The `url-connection-client` is a lightweight HTTP client, which keeps the impact on Lambda cold starts to a minimum.
52+
With the [announcement](https://aws.amazon.com/blogs/developer/announcing-availability-of-the-aws-crt-http-client-in-the-aws-sdk-for-java-2-x/) of the `aws-crt-client` a new HTTP client has been released, which offers faster SDK startup time and smaller memory footprint.
5453

55-
Unfortunately, replacing the `url-connection-client` dependency with the `aws-crt-client` will not immediately improve the lambda cold start performance and memory footprint,
56-
as the default version of the dependency contains native system libraries for all supported runtimes and architectures (Linux, MacOS, Windows, AMD64, ARM64, etc). This makes the CRT client portable, without the user having to consider _where_ their code will run, but comes at the cost of JAR size.
54+
Unfortunately, replacing the `url-connection-client` dependency with the `aws-crt-client` will not immediately improve the lambda cold start performance and memory footprint,
55+
as the default version of the dependency contains native system libraries for all supported runtimes and architectures (Linux, MacOS, Windows, AMD64, ARM64, etc). This makes the CRT client portable, without the user having to consider _where_ their code will run, but comes at the cost of JAR size.
5756

5857
### Configuring dependencies
5958

60-
Using the `aws-crt-client` in your project requires the exclusion of the `url-connection-client` transitive dependency from the powertools dependency.
59+
Using the `aws-crt-client` in your project requires the exclusion of the `url-connection-client` transitive dependency from the `powertools-*` dependency.
6160

62-
```xml
61+
```xml
6362
<dependency>
6463
<groupId>software.amazon.lambda</groupId>
6564
<artifactId>powertools-parameters</artifactId>
@@ -72,8 +71,9 @@ Using the `aws-crt-client` in your project requires the exclusion of the `url-co
7271
</exclusions>
7372
</dependency>
7473
```
75-
Next, add the `aws-crt-client` and exclude the "generic" `aws-crt` dependency (contains all runtime libraries).
76-
Instead, set a specific classifier of the `aws-crt` to use the one for your target runtime: either `linux-x86_64` for a Lambda configured for x86 or `linux-aarch_64` for Lambda using arm64.
74+
75+
Next, add the `aws-crt-client` and exclude the "generic" `aws-crt` dependency (contains all runtime libraries).
76+
Instead, set a specific classifier of the `aws-crt` to use the one for your target runtime: either `linux-x86_64` for a Lambda configured for x86 or `linux-aarch_64` for Lambda using arm64.
7777

7878
!!! note "You will need to add a separate maven profile to build and debug locally when your development environment does not share the target architecture you are using in Lambda."
7979
By specifying the specific target runtime, we prevent other target runtimes from being included in the jar file, resulting in a smaller Lambda package and improved cold start times.
@@ -102,10 +102,11 @@ By specifying the specific target runtime, we prevent other target runtimes from
102102
```
103103

104104
### Explicitly set the AWS CRT HTTP Client
105-
After configuring the dependencies, it's required to explicitly specify the AWS SDK HTTP client.
106-
Depending on the Powertools module, there is a different way to configure the SDK client.
107105

108-
The following example shows how to use the Lambda Powertools Parameters module while leveraging the AWS CRT Client.
106+
After configuring the dependencies, it's required to explicitly specify the AWS SDK HTTP client.
107+
Depending on the utility you are using, there is a different way to configure the SDK client.
108+
109+
The following example shows how to use the Parameters module while leveraging the AWS CRT Client.
109110

110111
```java hl_lines="16 23-24"
111112
import static software.amazon.lambda.powertools.parameters.transform.Transformer.base64;
@@ -141,12 +142,12 @@ public class RequestHandlerWithParams implements RequestHandler<String, String>
141142
}
142143
```
143144

144-
The `aws-crt-client` was considered for adoption as the default HTTP client in Lambda Powertools for Java as mentioned in [Move SDK http client to CRT](https://github.com/aws-powertools/powertools-lambda-java/issues/1092),
145+
The `aws-crt-client` was considered for adoption as the default HTTP client in Powertools for AWS Lambda (Java) as mentioned in [Move SDK http client to CRT](https://github.com/aws-powertools/powertools-lambda-java/issues/1092),
145146
but due to the impact on the developer experience it was decided to stick with the `url-connection-client`.
146147

147148
## How can I use Powertools for AWS Lambda (Java) with GraalVM?
148149

149-
Powertools core utilities, i.e. [logging](./core/logging.md), [metrics](./core/metrics.md) and [tracing](./core/tracing.md), include the [GraalVM Reachability Metadata (GRM)](https://www.graalvm.org/latest/reference-manual/native-image/metadata/) in the `META-INF` directories of the respective JARs. You can find a working example of Serverless Application Model (SAM) based application in the [examples](../examples/powertools-examples-core-utilities/sam-graalvm/README.md) directory.
150+
Core utilities, i.e. [logging](./core/logging.md), [metrics](./core/metrics.md) and [tracing](./core/tracing.md), include the [GraalVM Reachability Metadata (GRM)](https://www.graalvm.org/latest/reference-manual/native-image/metadata/) in the `META-INF` directories of the respective JARs. You can find a working example of Serverless Application Model (SAM) based application in the [examples](../examples/powertools-examples-core-utilities/sam-graalvm/README.md) directory.
150151

151152
Below, you find typical steps you need to follow in a Maven based Java project:
152153

@@ -157,6 +158,7 @@ export JAVA_HOME=<path to GraalVM>
157158
```
158159

159160
### Use log4j `>2.24.0`
161+
160162
Log4j version `2.24.0` adds [support for GraalVM](https://github.com/apache/logging-log4j2/issues/1539#issuecomment-2106766878). Depending on your project's dependency hierarchy, older version of log4j might be included in the final dependency graph. Make sure version `>2.24.0` of these dependencies are used by your Maven project:
161163

162164
```xml
@@ -245,10 +247,11 @@ Create a Docker image using a `Dockerfile` like [this](../examples/powertools-ex
245247
docker build --platform linux/amd64 . -t your-org/your-app-graalvm-builder
246248
```
247249

248-
Create the native image of you Lambda function using the Docker command below.
250+
Create the native image of you Lambda function using the Docker command below.
249251

250252
```shell
251253
docker run --platform linux/amd64 -it -v `pwd`:`pwd` -w `pwd` -v ~/.m2:/root/.m2 your-org/your-app-graalvm-builder mvn clean -Pnative-image package
252254

253255
```
256+
254257
The native image is created in the `target/` directory.

docs/core/logging.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ You can leverage the standard configuration files (_log4j2.xml_ or _logback.xml_
220220
=== "log4j2.xml"
221221

222222
With log4j2, we leverage the [`JsonTemplateLayout`](https://logging.apache.org/log4j/2.x/manual/json-template-layout.html){target="_blank"}
223-
to provide structured logging. A default template is provided in powertools ([_LambdaJsonLayout.json_](https://github.com/aws-powertools/powertools-lambda-java/tree/v2/powertools-logging/powertools-logging-log4j/src/main/resources/LambdaJsonLayout.json){target="_blank"}):
223+
to provide structured logging. A default template is provided in powertools ([_LambdaJsonLayout.json_](https://github.com/aws-powertools/powertools-lambda-java/blob/4444b4bce8eb1cc19880d1c1ef07188d97de9126/powertools-logging/powertools-logging-log4j/src/main/resources/LambdaJsonLayout.json){target="_blank"}):
224224

225225
```xml hl_lines="5"
226226
<?xml version="1.0" encoding="UTF-8"?>
@@ -278,7 +278,7 @@ If the level is set to any other value, we set it to the default value (`INFO`).
278278
<!-- markdownlint-disable MD013 -->
279279
With [AWS Lambda Advanced Logging Controls (ALC)](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-cloudwatchlogs.html#monitoring-cloudwatchlogs-advanced){target="_blank"}, you can enforce a minimum log level that Lambda will accept from your application code.
280280

281-
When enabled, you should keep Powertools and ALC log level in sync to avoid data loss.
281+
When enabled, you should keep your own log level and ALC log level in sync to avoid data loss.
282282

283283
Here's a sequence diagram to demonstrate how ALC will drop both `INFO` and `DEBUG` logs emitted from `Logger`, when ALC log level is stricter than `Logger`.
284284
<!-- markdownlint-enable MD013 -->
@@ -309,7 +309,7 @@ We prioritise log level settings in this order:
309309
2. `POWERTOOLS_LOG_LEVEL` environment variable
310310
3. level defined in the `log4j2.xml` or `logback.xml` files
311311

312-
If you set Powertools level lower than ALC, we will emit a warning informing you that your messages will be discarded by Lambda.
312+
If you set `POWERTOOLS_LOG_LEVEL` lower than ALC, we will emit a warning informing you that your messages will be discarded by Lambda.
313313

314314
> **NOTE**
315315
>
@@ -739,7 +739,7 @@ When debugging in non-production environments, you can instruct the `@Logging` a
739739
```
740740

741741
???+ note
742-
If you use this on a RequestStreamHandler, Powertools must duplicate input streams in order to log them.
742+
If you use this on a RequestStreamHandler, the SDK must duplicate input streams in order to log them.
743743

744744
## Logging handler response
745745

@@ -974,7 +974,7 @@ You can also customize how [exceptions are logged](https://logging.apache.org/lo
974974
See the [JSON Layout template documentation](https://logging.apache.org/log4j/2.x/manual/json-template-layout.html){target="_blank"} for more details.
975975

976976
### Logback configuration
977-
Logback configuration is done in _logback.xml_ and the Powertools [`LambdaJsonEncoder`]():
977+
Logback configuration is done in _logback.xml_ and the `LambdaJsonEncoder`:
978978

979979
```xml
980980
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">

docs/core/metrics.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -111,12 +111,12 @@ Visit the AWS documentation for a complete explanation for [Amazon CloudWatch co
111111

112112
Metrics has three global settings that will be used across all metrics emitted. Use your application or main service as the metric namespace to easily group all metrics:
113113

114-
| Setting | Description | Environment variable | Decorator parameter |
115-
| ------------------------------ | ------------------------------------------------------------------------------- | ---------------------------------- | ------------------- |
116-
| **Metric namespace** | Logical container where all metrics will be placed e.g. `ServerlessAirline` | `POWERTOOLS_METRICS_NAMESPACE` | `namespace` |
117-
| **Service** | Optionally, sets **service** metric dimension across all metrics e.g. `payment` | `POWERTOOLS_SERVICE_NAME` | `service` |
118-
| **Function name** | Function name used as dimension for the cold start metric | `POWERTOOLS_METRICS_FUNCTION_NAME` | `functionName` |
119-
| **Disable Powertools Metrics** | Optionally, disables all Powertools metrics | `POWERTOOLS_METRICS_DISABLED` | N/A |
114+
| Setting | Description | Environment variable | Decorator parameter |
115+
| -------------------- | ------------------------------------------------------------------------------- | ---------------------------------- | ------------------- |
116+
| **Metric namespace** | Logical container where all metrics will be placed e.g. `ServerlessAirline` | `POWERTOOLS_METRICS_NAMESPACE` | `namespace` |
117+
| **Service** | Optionally, sets **service** metric dimension across all metrics e.g. `payment` | `POWERTOOLS_SERVICE_NAME` | `service` |
118+
| **Function name** | Function name used as dimension for the cold start metric | `POWERTOOLS_METRICS_FUNCTION_NAME` | `functionName` |
119+
| **Disable Metrics** | Optionally, disables all metrics flushing | `POWERTOOLS_METRICS_DISABLED` | N/A |
120120

121121
!!! tip "Use your application or main service as the metric namespace to easily group all metrics"
122122

docs/core/tracing.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Tracing
33
description: Core utility
44
---
55

6-
Powertools tracing is an opinionated thin wrapper for [AWS X-Ray Java SDK](https://github.com/aws/aws-xray-sdk-java/)
6+
The Tracing utility is an opinionated thin wrapper for [AWS X-Ray Java SDK](https://github.com/aws/aws-xray-sdk-java/)
77
a provides functionality to reduce the overhead of performing common tracing tasks.
88

99
![Tracing showcase](../media/tracing_utility_showcase.png)

docs/upgrade.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ This step is only required if you are using log4j2 as your logging implementatio
112112

113113
**3. Migrate all logging specific calls to SLF4J native primitives (recommended)**
114114

115-
The new logging utility is designed to integrate seamlessly with Java SLF4J to allow customers adopt Powertools Logging without large code refactorings. This improvement requires the migration of non-native SLF4J primitives from the v1 Logging utility.
115+
The new logging utility is designed to integrate seamlessly with Java SLF4J to allow customers adopt the Logging utility without large code refactorings. This improvement requires the migration of non-native SLF4J primitives from the v1 Logging utility.
116116

117117
!!! info "While we recommend using SLF4J as a logging implementation independent facade, you can still use the log4j2 and logback interfaces directly."
118118

0 commit comments

Comments
 (0)