Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
…s-lambda-dotnet into fix/low-hanging-fruit-metrics-v2
  • Loading branch information
hjgraca committed Feb 28, 2025
2 parents a087d5f + 4858539 commit 8b6b839
Show file tree
Hide file tree
Showing 8 changed files with 61 additions and 30 deletions.
3 changes: 3 additions & 0 deletions .github/boring-cyborg.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@ labelPRBasedOnFilePath:
area/batch:
- libraries/src/AWS.Lambda.Powertools.Batch/*
- libraries/src/AWS.Lambda.Powertools.Batch/**/*
area/metrics-aspnetcore:
- libraries/src/AWS.Lambda.Powertools.Metrics.AspNetCore/*
- libraries/src/AWS.Lambda.Powertools.Metrics.AspNetCore/**/*

documentation:
- docs/*
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@ on:
push:
paths:
- "libraries/**"
branches: [develop, main]
branches: [develop]
pull_request:
paths:
- "libraries/**"
branches: [develop, main]
branches: [develop]

defaults:
run:
Expand Down Expand Up @@ -43,10 +43,10 @@ jobs:
run: dotnet test ../examples/ --verbosity normal

- name: Codecov
uses: codecov/codecov-action@13ce06bfc6bbe3ecf90edbbf1bc32fe5978ca1d3 # 5.3.1
uses: codecov/codecov-action@0565863a31f2c772f9f0395002a31e3f06189574 # 5.4.0
with:
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: false
name: codecov-lambda-powertools-dotnet
verbose: true
directory: ./libraries/codecov
directory: ./libraries/codecov
2 changes: 1 addition & 1 deletion .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
push:
paths:
- "libraries/**"
branches: [ "develop", main ]
branches: [ "develop" ]
pull_request:
paths:
- "libraries/**"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: Docs
on:
push:
branches:
- main
- develop
workflow_dispatch: {}

permissions:
Expand Down
16 changes: 10 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,27 +35,31 @@ Powertools for AWS Lambda (.NET) provides three core utilities:

The Powertools for AWS Lambda (.NET) utilities (.NET 6 and .NET 8) are available as NuGet packages. You can install the packages from [NuGet Gallery](https://www.nuget.org/packages?q=AWS+Lambda+Powertools*) or from Visual Studio editor by searching `AWS.Lambda.Powertools*` to see various utilities available.

* [AWS.Lambda.Powertools.Logging](https://www.nuget.org/packages?q=AWS.Lambda.Powertools.Logging):
* [AWS.Lambda.Powertools.Logging](https://www.nuget.org/packages/AWS.Lambda.Powertools.Logging):

`dotnet add package AWS.Lambda.Powertools.Logging`

* [AWS.Lambda.Powertools.Metrics](https://www.nuget.org/packages?q=AWS.Lambda.Powertools.Metrics):
* [AWS.Lambda.Powertools.Metrics](https://www.nuget.org/packages/AWS.Lambda.Powertools.Metrics):

`dotnet add package AWS.Lambda.Powertools.Metrics`

* [AWS.Lambda.Powertools.Tracing](https://www.nuget.org/packages?q=AWS.Lambda.Powertools.Tracing):
* [AWS.Lambda.Powertools.Metrics.AspNetCore](https://www.nuget.org/packages/AWS.Lambda.Powertools.Metrics.AspNetCore):

`dotnet add package AWS.Lambda.Powertools.Metrics.AspNetCore`

* [AWS.Lambda.Powertools.Tracing](https://www.nuget.org/packages/AWS.Lambda.Powertools.Tracing):

`dotnet add package AWS.Lambda.Powertools.Tracing`

* [AWS.Lambda.Powertools.Parameters](https://www.nuget.org/packages?q=AWS.Lambda.Powertools.Parameters):
* [AWS.Lambda.Powertools.Parameters](https://www.nuget.org/packages/AWS.Lambda.Powertools.Parameters):

`dotnet add package AWS.Lambda.Powertools.Parameters`

* [AWS.Lambda.Powertools.Idempotency](https://www.nuget.org/packages?q=AWS.Lambda.Powertools.Idempotency):
* [AWS.Lambda.Powertools.Idempotency](https://www.nuget.org/packages/AWS.Lambda.Powertools.Idempotency):

`dotnet add package AWS.Lambda.Powertools.Idempotency`

* [AWS.Lambda.Powertools.BatchProcessing](https://www.nuget.org/packages?q=AWS.Lambda.Powertools.BatchProcessing):
* [AWS.Lambda.Powertools.BatchProcessing](https://www.nuget.org/packages/AWS.Lambda.Powertools.BatchProcessing):

`dotnet add package AWS.Lambda.Powertools.BatchProcessing`

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,24 +74,21 @@ public static bool Extract(AspectEventArgs args)
return false;

var index = Array.FindIndex(args.Method.GetParameters(), p => p.ParameterType == typeof(ILambdaContext));
if (index >= 0)
{
var x = (ILambdaContext)args.Args[index];

Instance = new LoggingLambdaContext
{
AwsRequestId = x.AwsRequestId,
FunctionName = x.FunctionName,
FunctionVersion = x.FunctionVersion,
InvokedFunctionArn = x.InvokedFunctionArn,
LogGroupName = x.LogGroupName,
LogStreamName = x.LogStreamName,
MemoryLimitInMB = x.MemoryLimitInMB
};
return true;
}
if (index < 0 || args.Args[index] == null || args.Args[index] is not ILambdaContext) return false;

var x = (ILambdaContext)args.Args[index];

return false;
Instance = new LoggingLambdaContext
{
AwsRequestId = x.AwsRequestId,
FunctionName = x.FunctionName,
FunctionVersion = x.FunctionVersion,
InvokedFunctionArn = x.InvokedFunctionArn,
LogGroupName = x.LogGroupName,
LogStreamName = x.LogStreamName,
MemoryLimitInMB = x.MemoryLimitInMB
};
return true;
}

/// <summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,33 @@ public void Extract_WhenHasLambdaContextArgument_InitializesLambdaContextInfo()
Assert.Null(LoggingLambdaContext.Instance);
}

[Fact]
public void Extract_When_LambdaContext_Is_Null_But_Not_First_Parameter_Returns_False()
{
// Arrange
ILambdaContext lambdaContext = null;
var args = Substitute.For<AspectEventArgs>();
var method = Substitute.For<MethodInfo>();
var parameter1 = Substitute.For<ParameterInfo>();
var parameter2 = Substitute.For<ParameterInfo>();

// Setup parameters
parameter1.ParameterType.Returns(typeof(string));
parameter2.ParameterType.Returns(typeof(ILambdaContext));

// Setup method
method.GetParameters().Returns(new[] { parameter1, parameter2 });

// Setup args
args.Method = method;
args.Args = new object[] { "requestContext", lambdaContext };

// Act && Assert
LoggingLambdaContext.Clear();
Assert.Null(LoggingLambdaContext.Instance);
Assert.False(LoggingLambdaContext.Extract(args));
}

[Fact]
public void Extract_When_Args_Null_Returns_False()
{
Expand Down
2 changes: 1 addition & 1 deletion version.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"Logging": "1.6.4",
"Metrics": "2.0.0",
"Tracing": "1.6.1",
"Metrics.AspNetCore": "0.1.0",
"Metrics.AspNetCore": "0.1.0"
},
"Utilities": {
"Parameters": "1.3.0",
Expand Down

0 comments on commit 8b6b839

Please sign in to comment.