Skip to content
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

Add Instana support #305

Open
rasheedamir opened this issue Jan 21, 2021 · 7 comments
Open

Add Instana support #305

rasheedamir opened this issue Jan 21, 2021 · 7 comments
Labels

Comments

@rasheedamir
Copy link
Member

rasheedamir commented Jan 21, 2021

Instana: https://www.instana.com/

@hanlin513
Copy link

Here is a suggestion for a basic implementation of an Instana monitor. Note that there are a couple of questions included in the text where there are some uncertainties.

The aim of this implementation is to create a basic monitor for Instana APM.

Basically, the implementation will use the Instana API for adding Application perspectives:
https://instana.github.io/openapi/#tag/Application-Settings

The application perspective id:s provided by Instana will be used as identifiers for Remove and Update operations.
Question: Is persistency of id:s something that needs to be considered? E.g. in case the process is restarted and the monitor id:s are only stored in memory.

The mapping of the monitor interface methods to Instana operations is fairly straightforward:


GetAll -> GET All Application Configurations


Add -> POST Add application configuration

Comment: In this first simple implementation, boundaryScope will be set to "DEFAULT" and scope will be set to "INCLUDE_ALL_DOWNSTREAM".
The application perspective label (visible name in Instana) will be provided in monitor config.
A cluster name (provided in monitor config) and a cluster namespace (provided from EndpointMonitor) will be used as matching parameters for Instanas service discovery.


Update -> PUT Update application configuration

Comment: In this basic version of the implementation, only updating label will be supported (in case the application changes name).


GetByName -> GET Application configuration


Remove -> DEL Delete application configuration


Setup -> No instana API connection.

Comment: Setup authentication params for Instana API. An apiToken needs to be provided to this method.
https://instana.github.io/openapi/#section/Authentication


Equal -> No instana API connection

Comment: This method is either missing or just returning false in other implementations.
Question: Can we implement with simple "return false"?

@hanlin513
Copy link

In the current implementation we are aiming to pass namespace and clustername to Instana for the setup of monitoring. The question is how these values will be available during runtime execution? Will the be included in the monitor passed as an argument to the Add method? Or will they be provided through some configuration YAML?

@ahmedwaleedmalik
Copy link
Contributor

ahmedwaleedmalik commented Feb 10, 2021

Hi @hanlin513, hope you are doing well.

in case the process is restarted and the monitor id:s are only stored in memory.

We can add monitor id to the status of EndpointMonitor CR in that case

Question: Can we implement with simple "return false"?

This I a very vital method and is supposed to be implemented to save redundant API calls etc. It was left empty because we don't have active access to all the service providers that we support atm. So, it becomes difficult to implement and maintain. We expect it to be maintained by our community.

pass namespace and clustername to Instana for the setup of monitoring

Are these values supposed to change at runtime and during the execution of the pod? Considering that ideally, EndpointMonitors should be independent of cluster-specific details/bindings(coming from global config) they will be better of in the InstanaConfig which will be similar to this

Although if you think it shouldn't be tied to each EndpointMonitor CR and should be the same for an instance of IMC. Then you should define that in the config similar to this

@github-actions
Copy link

This issue is stale because it has been open for 60 days with no activity.

@github-actions github-actions bot added the stale label Apr 13, 2023
@github-actions
Copy link

This issue was closed because it has been inactive for 30 days since being marked as stale.

@karl-johan-grahn
Copy link
Contributor

Reopening issues that inadvertently were closed as stale

Copy link

This issue is stale because it has been open for 60 days with no activity.

@github-actions github-actions bot added the stale label Nov 28, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants