-
Notifications
You must be signed in to change notification settings - Fork 524
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Integrate with Elastic Agent #4004
Comments
@axw you mentioned that you had some details you wanted to add here, right? or did I misinterpret? |
@jalvz I had previously added a list, but I think I forgot to save and it was lost. I'll add things as I remember them 😅 |
Note that the Now we need to define an APM integration in terms of data streams and inputs with the structure described above. I'm going with the assumption that we will have only one APM integration for apm-server and APM agents. Following the Indexing Strategy proposal, we are going to introduce a new From there, 2 options come to mind:
A simplified version of this would look like:
|
@elastic/apm-server @felixbarny @ruflin looking for feedback on comment above, if anything of what I wrote makes any sense. |
I would vote for the simplest UI that gets APM Server and the Agents deployed. If possible, just a |
I agree with @graphaelli's comments above, with the exception of maybe I don't think it makes a heap of sense to opt in/out of individual data types for APM agents at this level, since it doesn't give a way of filtering by service. You might have multiple Java services, but want to enable logs for only a handful of them. This is different to existing integrations, where the integration is tied to a specific service (apache, nginx, etc.) Going further, I think the only agent-related config that should go in the package should be to do with auto-instrumentation: whether to enable/disable per language, and perhaps some parameters like a pattern for matching process names. @felixbarny WDYT? |
Thanks all, I don't intend to add any agent related stuff at this point at all, but since we have to make to room for it I wanted to show now how it could look like. I don't have an opinion on what settings should be there, this was just an example. There is no way around the toggle for the data types and inputs (that is what I tried to explain in standup yesterday @axw), I agree it doesn't make sense for us. I guess my biggest question now is whether to treat apm-server as an input (confusing UI IMO), or just have all its settings under eg. the traces data stream (needs additional support in Ingest Manager to have those settings propagated downstream even if there are 0 inputs). |
++ I've created a document with a proposal of how to integrate agents in the workflow that includes some mockups:
Do we need a secret token? When APM Server is installed locally, could we make it to only accept connections from localhost? On k8s, can we inject (via a mutating webhook) the secret_token a environment variable from a k8s secret?
++ |
Not sure if I understand, I think we are not doing that?
SGTM, but note that the proposal in the doc you linked (one data stream per agent, which is what I first thought of) might not be very compatible with how Ingest Manager works now. Eg. what is the type of the agent data stream, etc. |
In the very first iteration, I think it's probably fine to not have any agent related inputs. The next step would be to include documentation on how to install the agents (similar to the add data dialog). On top of that, we can add controls for auto attachment of agents. |
Good point, we probably don't need it to start with. Perhaps later we could orchestrate secrets (e.g. server generates secret_tokens and/or API Keys, and passes them to instrumented apps). It's probably not high priority since it's localhost-only. @jalvz reiterating my statement from standup for posterity: I'm on board with squishing the config into an arbitrary (i.e. traces) data stream config as a way to move forward, and working with the Fleet team to improve the UX. |
Copying a little bit of conversation from Slack. I failed to write down some thoughts I had swimming in my mind which led to some confusion. We talked a bit about needing a way to configure APM Server for hosted cases, e.g. I may want to run an APM Server for RUM, Lambda, etc., where APM Server does not/cannot run on the same host. I'm thinking we might want two separate packages: one that is all about Hosted APM Server, and one that is focused more on APM Agents, where APM Server is configured transparently in order to service the agents. |
Ok, so let's elaborate that. The integrations page would offer something like: Click on the left one: Again, that is just an example. But I was also thinking that it would make sense (eventually) to include agent settings not supported by central config? Now maybe is more obvious what I mentioned about confusing UI:
Having 2 similar-yet-different ways to install/manage APM Server means that we need 2 ways of handling configuration coming from Elastic agent in the apm-server code, more documentation, user confusion, etc. All in all, I think the option with best trade-offs is still the initial suggestion. |
|
Update 01 DecWork that was WIP at the time of the last status update has been finished. This means: Kibana support for top level variables, a way for us to generate a package out of our The main body of work currently WIP is #4473. The most important thing that it brings to the package are pipelines. The templates currently generated by the apm package seem all right and good. Once we wire the result of kibana/83878 down to the apm-server config reloader, and verify that the whole thing (hopefully!) works, then we can finally copy the package to |
Update 08 DecWork that was WIP at the time of the last status update has been finished. It took a couple of rounds of fixes to get pipelines working; and with the addition of 4486 we got now all the pieces together. I opened apm-server issues to iterate on docs and testing, and to add icons/screenshots (to be worked on next). Also filed package-registry/659 to improve pipeline support in Fleet. First package should come to the snapshot registry hopefully soon via package-storage/688, which is now waiting on a pending registry release. |
Thanks @jalvz for the updates! |
Update 16 DecWork that was WIP at the time of the last status update has been finished. We have the APM package version We identified and fixed a permission issue in Fleet, which now needs an enhancement to smooth out the experience for 7.12. There is now support in apm-integration-testing to run apm-server under Agent, and we will continue to iterate on that in the upcoming weeks and flip the switch to run apm-server under agent by default (that is, in apm-integration-testing). This week there has been also good progress adding tests in apm-server for the package; and last but not least, a new proposal for sourcemapping is out for review (this has POC implementation already). In the server weekly today we decided to not release the APM package in 7.11, and instead use a whole release cycle to improve, test and play with it. The reason is that the package as-is doesn't bring a huge benefit to existing APM users, they would just have some features less and a bit more of friction. Therefore I will close this issue soon and open a new meta issue for tracking 7.12 goals. |
Forgot to mention that there is an ongoing discussion about whether or not to bundle apm-server with Agent. I'll close this now in favor of #4558, thanks for following 👋 |
Things to investigate/consider
how to integrate with cloud-on-k8s (depends on working group)(WIP, tracked separately)upgrade plan to 8.0(will be tracked separately)Update 03/11, 08/12 (Juan)
Main lines of work required
Implement the Indexing Strategy (Implement the new indexing strategy #4378, Data streams improvements #4449)
Automate / Semi-automate APM Package: this includes splitting
fields.yml
files, generate docs, tests, other assets, document development workflow, etc. (Generate fields for APM package #4432)Prepare and test minimal templates, default ILM policies if anyMove forward with spec proposed changed (linked bellow)
Issues
This list is non exahustive. Check comments for links to PRs done in relation to the APM package.
Required
Closed issues
[Ingest Manager] New type for APM integration kibana#81451Mimimal template for the APM indexing strategy elasticsearch#64047The text was updated successfully, but these errors were encountered: