newrelic / newrelic/newrelic-python-agent

Support for grpcio-aio (Async gRPC)

Open
#330 10 comments 6 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

feature-request
Dominant language
Python
Stars
210
Forks
137
Avg merge
4d 19h
Merged PRs (30d)
12

Description

Is your feature request related to a problem? Please describe.

We're currently in the process of moving from our PHP based Legacy/Monolith system to a Python based Micro-services environment with a React Micro-frontend. We've been using New Relic for our performance monitoring, logging, alerts, profiling, problem debugging, etc. We've been noticing that we're having performance issues with our services at high traffic load and have been looking at ways to improve performance. One of the things that was identified that would improve performance, would be switching from using synchronous grpc to asynchronous grpc (https://grpc.github.io/grpc/python/grpc_asyncio.html). During the process of prototyping and testing grpcio-aio and trying to debug and profile, we found that no data was being sent to New Relic APM. We were able to see the container and see it's CPU/Memory usage and such, but no info regarding requests was being captured at all.

This is obviously a huge problem for us, since we're heavily integrated into New Relic at the moment and moving to grpcio-aoi is something we definitely want to move toward as not doing so means, we can't start migrating customers from the legacy enviroment to our new Micro-services environment, so not being able to use grpcio-aio with New Relic is huge road block for us and something we need to resolve ASAP.

Feature Description

The same support we have for gRPC to be replicated Async gRPC

Describe Alternatives

N/A

Additional context

I have logged this via New Relic support too, feature request: PYTHON-I-151. They said it would be beneficial to post the request here too.

Priority

Blocker

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the existing gRPC support and the grpcio-aio documentation linked in the issue, then compare how asynchronous requests are represented for New Relic APM. The work is done when grpcio-aio services report request data with the same coverage as synchronous gRPC services.

Written by the indexing model from the issue text.

Assessment

Tech stack
grpc, python
Domain
backend-api-design, observability
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.