Comments (8)
For reference, here's how we have split up
/api/*
into its own service for opbeans-node: elastic/opbeans-node#36
To be frank, I'd prefer if you reverted that once we have this thing going. It'll be confusing why transactions/traces from opbeans-node look slightly different than everybody else
from apm-integration-testing.
For good measure: What are the standard endpoints in /api
?
/api/stats
/api/products
/api/products/:id
/api/products/top
/api/products/customers
/api/types
/api/types/:id
/api/customers
/api/customers/:id
/api/orders
/api/orders/:id
# bonus curve ball:
POST /api/orders
from apm-integration-testing.
For reference, here's how we have split up /api/*
into its own service for opbeans-node: elastic/opbeans-node#36
from apm-integration-testing.
What percentage should be used when flipping a coin? 50%?
Should it be a parameter so we can tune for longer traces if needed?
from apm-integration-testing.
opbeans-node have the following HTTP endpoints:
GET /is-it-coffee-time
- Not called by the UI and probably unique to opbeans-nodeGET /log-error
- Not called by the UI and probably unique to opbeans-nodeGET /log-message
- Not called by the UI and probably unique to opbeans-nodeGET /throw-error
- Not called by the UI and probably unique to opbeans-nodeGET /throw-async-error
- Not called by the UI and probably unique to opbeans-nodeGET /api/stats
GET /api/products
GET /api/products/top
GET /api/products/:id
GET /api/products/:id/customers
GET /api/types
GET /api/types/:id
GET /api/customers
POST /api/customers
- This one is so far special to opbeans-node and isn't used by the UI yetGET /api/customers/:id
GET /api/orders
POST /api/orders
- This one isn't used by the UI, but by the workload scriptGET /api/orders/:id
GET /*
- Catch all that doesn't match any of the above. Used to serve static files to the frontend
from apm-integration-testing.
@beniwohli On the other hand, this removes the issue of recursion. If all opbeans-* exposed two services like this, the other opbeans-* could just call that one to not trigger the random proxy again. That way we'd not have an infinite loop of proxy calls 😅
But I'm not sure how easy it is for other languages to host multiple services in the same container like we do for opbeans-node
from apm-integration-testing.
For this first iteration I would keep it simple, the odds of a very long trace are very low.
from apm-integration-testing.
@elastic/apm-agent-devs thanks for doing this in record time. Closing the issue
from apm-integration-testing.
Related Issues (20)
- apm-agent-ruby: full coverage support uses 2.x as the latest version
- Update user and roles to leverage built in solutions roles
- Add a lambda service to Opbeans test data HOT 4
- Update 7.x branch with the latest changes in the main branch HOT 2
- APM server managed support on compose.py HOT 7
- Fix setup with Elastic Agent and Fleet HOT 2
- add opbeans-php
- --apm-server-managed has hard dependency on kibana service HOT 1
- opbeans-rum fails to start on m1 laptops HOT 2
- APM Server container exits when it cannot reach Kibana HOT 12
- apm-agent-nodejs integration tests are failing because of slow npm install from github
- benchmarking: `--apm-server-record` flag has no effect
- 8.3 bc launch fails
- Enable Testing for ARM64 platform HOT 13
- ECK testing broken HOT 7
- Remove agent tests HOT 3
- python 3.10 causes some issues when running the tests
- docker: apm-server image fails when building it HOT 2
- docker for opbeans-dotnet is failing
- `--bc` fails for Elasticsearch
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from apm-integration-testing.