IngressMonitorController icon indicating copy to clipboard operation
IngressMonitorController copied to clipboard

Add Instana support

Open rasheedamir opened this issue 4 years ago • 7 comments

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

rasheedamir avatar Jan 21 '21 15:01 rasheedamir

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 avatar Jan 22 '21 07:01 hanlin513

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?

hanlin513 avatar Feb 08 '21 09:02 hanlin513

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

ahmedwaleedmalik avatar Feb 10 '21 08:02 ahmedwaleedmalik

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

github-actions[bot] avatar Apr 13 '23 01:04 github-actions[bot]

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

github-actions[bot] avatar May 14 '23 01:05 github-actions[bot]

Reopening issues that inadvertently were closed as stale

karl-johan-grahn avatar Sep 26 '23 18:09 karl-johan-grahn

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

github-actions[bot] avatar Nov 28 '23 01:11 github-actions[bot]