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

[O11y][HAProxy] Migrate stat data-stream visualizations to lens in kibana 8.4.0 #5611

Conversation

rajvi-patel-22
Copy link
Contributor

@rajvi-patel-22 rajvi-patel-22 commented Mar 21, 2023

  • Enhancement

What does this PR do?

  • Migrate stat data-stream visualizations to lens for HAProxy integration package

  • Statistics for HAProxy Lens migration:

HAProxy Dashboards  Before Migration   After Migration  
  Lens Visualization Lens Visualization
[Metrics HAProxy] HTTP backend 0 8 8 0
[Metrics HAProxy] Overview 0 4 4 0
[Metrics HAProxy] Frontend 0 2 2 0
[Metrics HAProxy] HTTP frontend 0 3 3 0
[Metrics HAProxy] HTTP server 0 6 6 0
[Metrics HAProxy] Backend 0 6 6 0
  0 29 29 0

Checklist

  • I have added an entry to my package's changelog.yml file.
  • I have verified that panels are populated with data.
  • I have verified that panels are not distorted after being migrated to lens.
  • I have updated screenshots of dashboard.
  • I have verified that data count are matching and panel aggregations are same as before.

Author's Checklist

  • Migrated panels should be removed from visualization folder.
  • Migrated visualizations are populating in current Kibana version 8.4.0 itself.

Related issues

Issues

Below 10 panels are not migrated due to lens limitations:

Dashboard Visualization Reason
[Metrics HAProxy] HTTP backend Downtime seconds [Metrics HAProxy] elastic/kibana#153326
  Connections per server [Metrics HAProxy] elastic/kibana#153326
  Active servers in backend [Metrics HAProxy] elastic/kibana#153326
[Metrics HAProxy] HTTP server Healthcheck [Metrics HAProxy] Complex painless script
[Metrics HAProxy] Backend Downtime seconds [Metrics HAProxy] elastic/kibana#153326
  Connections per server [Metrics HAProxy] elastic/kibana#153326
  Active servers in backend [Metrics HAProxy] elastic/kibana#153326
[Metrics HAProxy] Overview Frontends elastic/kibana#153326
  Backends elastic/kibana#153326
  Servers visualizations elastic/kibana#153326

Note: Please find below screenshots of dashboards (before migration) to compare migrated panels:

[Metrics HAProxy] Overview:
image

[Metrics HAProxy] HTTP backend:
image

[Metrics HAProxy] Backend:
image

[Metrics HAProxy] HTTP Frontend:
image

[Metrics HAProxy] HTTP server:
image

[Metrics HAProxy] Frontend:
image

@rajvi-patel-22 rajvi-patel-22 requested a review from a team as a code owner March 21, 2023 12:32
@elasticmachine
Copy link

elasticmachine commented Mar 21, 2023

💚 Build Succeeded

the below badges are clickable and redirect to their specific view in the CI or DOCS
Pipeline View Test View Changes Artifacts preview preview

Expand to view the summary

Build stats

  • Start Time: 2023-04-12T05:59:38.615+0000

  • Duration: 15 min 59 sec

Test stats 🧪

Test Results
Failed 0
Passed 25
Skipped 0
Total 25

🤖 GitHub comments

Expand to view the GitHub comments

To re-run your PR in the CI, just comment with:

  • /test : Re-trigger the build.

@elasticmachine
Copy link

elasticmachine commented Mar 21, 2023

🌐 Coverage report

Name Metrics % (covered/total) Diff
Packages 100.0% (1/1) 💚
Files 100.0% (1/1) 💚
Classes 100.0% (1/1) 💚
Methods 90.476% (19/21)
Lines 90.556% (163/180)
Conditionals 100.0% (0/0) 💚

@rajvi-patel-22
Copy link
Contributor Author

@agithomas, As we have mentioned in the description, there are 10 panels which have not be migrated to the lens. We have found work around for Healthcheck [Metrics HAProxy] panel from [Metrics HAProxy] HTTP server dashboard which was blocked. The functionality can be replicated using conditional operations which are added in Kibana v8.6.0 (Github Issue).

Currently, we have migrated everything to 8.4.0. In order to migrate this new panel, we will have to upgrade to the newer Kibana version (v8.6.0).

Can you please let us know how should we proceed further?

@agithomas
Copy link
Contributor

Currently, we have migrated everything to 8.4.0. In order to migrate this new panel, we will have to upgrade to the newer Kibana version (v8.6.0).

@rajvi-elastic , are you saying with 8.6.0 migration, we would have 100% lens migration for HAProxy dashboards?

@rajvi-patel-22
Copy link
Contributor Author

@rajvi-elastic , are you saying with 8.6.0 migration, we would have 100% lens migration for HAProxy dashboards?

No @agithomas . Not all the 10 remaining panels could be migrated to the lens. Only one panel which is blocked due to Complex painless script could be migrated. All the other 9 panels are blocked due to elastic/kibana#153326.

With v8.6.0 we will be only able to migrate one panel from the list. Other 9 panels would be still visualizations.

@kush-elastic kush-elastic added enhancement New feature or request Integration:haproxy HAProxy v8.4.0 Team:Service-Integrations Label for the Service Integrations team labels Mar 23, 2023
@rajvi-patel-22
Copy link
Contributor Author

rajvi-patel-22 commented Mar 23, 2023

@agithomas, There is one screenshot of the dashboard of the filebeat module. It seems redundant to me, we already have updated the latest screenshot here. If it's not needed now then please remove this from the integration.

@agithomas
Copy link
Contributor

All the other 9 panels are blocked due to elastic/kibana#153326

@SubhrataK , is the last bucket issue highlighted here and referred in other integrations can now be considered is not an issue anymore ?

@rajvi-elastic , please confirm if the issue is similar to other integrations and there are no edge cases here.

@agithomas
Copy link
Contributor

@agithomas, As we have mentioned in the description, there are 10 panels which have not be migrated to the lens. We have found work around for Healthcheck [Metrics HAProxy] panel from [Metrics HAProxy] HTTP server dashboard which was blocked. The functionality can be replicated using conditional operations which are added in Kibana v8.6.0 (Github Issue).

Currently, we have migrated everything to 8.4.0. In order to migrate this new panel, we will have to upgrade to the newer Kibana version (v8.6.0).

Can you please let us know how should we proceed further?

@lalit-satapathy , what is your take on this? The benefit of migrating to 8.6.0 from 8.4.0 is only for just one panel. My personal preference is to retain this one panel in old vis style and migrate when there exist a proper solution instead of workaround.

@rajvi-patel-22
Copy link
Contributor Author

@SubhrataK , is the last bucket issue highlighted here and referred in other integrations can now be considered is not an issue anymore ?

@rajvi-elastic , please confirm if the issue is similar to other integrations and there are no edge cases here.

No @agithomas, The issue that is mentioned here is not similar to what we discussed in IBM MQ. We are still discussing this last bucket issue with Kibana team and they have scheduled a call in next week.

@rajvi-patel-22
Copy link
Contributor Author

rajvi-patel-22 commented Mar 31, 2023

As discussed with @SubhrataK,

  1. For the issue Not having feature to set last bucket value, we are good with the metrics chart. For the line/area chart we need auto functionality in reduced timerange. So for the time series visualization we still need to discuss with the kibana team.

  2. For the Splitting a chart into multiple smaller charts by a breakdown dimension is not supported in the lens, we are going to migrate into table chart. Also need to re-arrange the dashboard like first metrics, then line/area/bar charts, and the table charts be at last.

  3. Split Active server in backend into 2 panels which represents Active server and Total server.

  4. Create line chart to represent Downtime seconds.

@rajvi-patel-22
Copy link
Contributor Author

@agithomas, Can you please help me understand the aggregation that has been used in Connections per server panel. The panel is using last value functionality along with drilldowns. In order to migrate this visualization in lens, it would be better to have an understanding of why average and derivatives are applied on haproxy.stat.connection.total rather than directly using the value of haproxy.stat.connection.total :

screencapture-storage-0-kb-us-central1-gcp-cloud-es-io-9243-app-visualize-2023-04-06-17_44_25

screencapture-storage-0-kb-us-central1-gcp-cloud-es-io-9243-app-visualize-2023-04-06-17_44_44

CC: @SubhrataK

@agithomas
Copy link
Contributor

@agithomas, Can you please help me understand the aggregation that has been used in Connections per server panel. The panel is using last value functionality along with drilldowns. In order to migrate this visualization in lens, it would be better to have an understanding of why average and derivatives are applied on haproxy.stat.connection.total rather than directly using the value of haproxy.stat.connection.total :

screencapture-storage-0-kb-us-central1-gcp-cloud-es-io-9243-app-visualize-2023-04-06-17_44_25

screencapture-storage-0-kb-us-central1-gcp-cloud-es-io-9243-app-visualize-2023-04-06-17_44_44

CC: @SubhrataK

It appears that the field is of metric_type counter. Avg() function may not be the agg function to use here. It is important to find out the rate of change on counter field and hence derivative() function is used.

You may consider changing from avg() to max() while making the lens migration.

@rajvi-patel-22
Copy link
Contributor Author

@lalit-satapathy , what is your take on this? The benefit of migrating to 8.6.0 from 8.4.0 is only for just one panel. My personal preference is to retain this one panel in old vis style and migrate when there exist a proper solution instead of workaround.

@agithomas, The solution that we have implemented is the same as auto lens migration implements (Edit visualization in lens option). In older TSVB visualization, the ternary operator was used which can be replicated in lens using ifelse condition v8.6.0. In both the cases the counts are accurate and If we migrate to 8.6.0 then we will achieve 100% migration.

Please let us know whether we should migrate to the 8.6.0 or not?

@agithomas
Copy link
Contributor

@lalit-satapathy , what is your take on this? The benefit of migrating to 8.6.0 from 8.4.0 is only for just one panel. My personal preference is to retain this one panel in old vis style and migrate when there exist a proper solution instead of workaround.

@agithomas, The solution that we have implemented is the same as auto lens migration implements (Edit visualization in lens option). In older TSVB visualization, the ternary operator was used which can be replicated in lens using ifelse condition v8.6.0. In both the cases the counts are accurate and If we migrate to 8.6.0 then we will achieve 100% migration.

Please let us know whether we should migrate to the 8.6.0 or not?

Please proceed.

@rajvi-patel-22
Copy link
Contributor Author

@agithomas, The solution that we have implemented is the same as auto lens migration implements (Edit visualization in lens option). In older TSVB visualization, the ternary operator was used which can be replicated in lens using ifelse condition v8.6.0. In both the cases the counts are accurate and If we migrate to 8.6.0 then we will achieve 100% migration.
Please let us know whether we should migrate to the 8.6.0 or not?

Please proceed.

@agithomas, All the panels have been migrated to lens (Kibana v8.6.0).

Copy link
Contributor

@agithomas agithomas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

packages/haproxy/img/haproxy-metrics-http-frontend.png have negative values for traffic volume. Please correct them.

@rajvi-patel-22
Copy link
Contributor Author

packages/haproxy/img/haproxy-metrics-http-frontend.png have negative values for traffic volume. Please correct them.

@agithomas, this panel uses the differences. This has the similar aggregations as oracle panel..

@agithomas
Copy link
Contributor

packages/haproxy/img/haproxy-metrics-http-frontend.png have negative values for traffic volume. Please correct them.

@agithomas, this panel uses the differences. This has the similar aggregations as oracle panel..

Well, it is understandable from Oracle Integration snapshot, it is not clear here that what is represented is a difference from previous value. In oracle, the actual value was shown and then the line showing the difference is an overlay. I understand that this is how things were in the past .

@SubhrataK , can you please have a quick check on this and recommend a suitable title change or a better representation of panel data such as - data + difference value

@agithomas
Copy link
Contributor

packages/haproxy/img/haproxy-metrics-http-frontend.png have negative values for traffic volume. Please correct them.

@agithomas, this panel uses the differences. This has the similar aggregations as oracle panel..

Well, it is understandable from Oracle Integration snapshot, it is not clear here that what is represented is a difference from previous value. In oracle, the actual value was shown and then the line showing the difference is an overlay. I understand that this is how things were in the past .

@SubhrataK , can you please have a quick check on this and recommend a suitable title change or a better representation of panel data such as - data + difference value

@rajvi-elastic , please create a backlog issue for this. It may be best we take it up separately in the interest of time.

@agithomas
Copy link
Contributor

Rest things are good.

Version change from 8.0.0 to 8.6.0 needs approval, deferring the PR approval until then.

@rajvi-patel-22
Copy link
Contributor Author

rajvi-patel-22 commented Apr 14, 2023

@rajvi-elastic , please create a backlog issue for this. It may be best we take it up separately in the interest of time.

@agithomas, I have created the backlog issue.

@agithomas agithomas mentioned this pull request Apr 25, 2023
36 tasks
@botelastic
Copy link

botelastic bot commented May 16, 2023

Hi! We just realized that we haven't looked into this PR in a while. We're sorry! We're labeling this issue as Stale to make it hit our filters and make sure we get back to it as soon as possible. In the meantime, it'd be extremely helpful if you could take a look at it as well and confirm its relevance. A simple comment with a nice emoji will be enough :+1. Thank you for your contribution!

@botelastic
Copy link

botelastic bot commented Jun 16, 2023

Hi! We just realized that we haven't looked into this PR in a while. We're sorry! We're labeling this issue as Stale to make it hit our filters and make sure we get back to it as soon as possible. In the meantime, it'd be extremely helpful if you could take a look at it as well and confirm its relevance. A simple comment with a nice emoji will be enough :+1. Thank you for your contribution!

@botelastic botelastic bot added the Stalled label Jun 16, 2023
@botelastic
Copy link

botelastic bot commented Jul 16, 2023

Hi! This PR has been stale for a while and we're going to close it as part of our cleanup procedure. We appreciate your contribution and would like to apologize if we have not been able to review it, due to the current heavy load of the team. Feel free to re-open this PR if you think it should stay open and is worth rebasing. Thank you for your contribution!

@botelastic botelastic bot closed this Jul 16, 2023
@rajvi-patel-22 rajvi-patel-22 requested a review from a team as a code owner July 19, 2023 08:38
@botelastic botelastic bot removed the Stalled label Jul 19, 2023
@botelastic
Copy link

botelastic bot commented Aug 18, 2023

Hi! We just realized that we haven't looked into this PR in a while. We're sorry! We're labeling this issue as Stale to make it hit our filters and make sure we get back to it as soon as possible. In the meantime, it'd be extremely helpful if you could take a look at it as well and confirm its relevance. A simple comment with a nice emoji will be enough :+1. Thank you for your contribution!

@botelastic botelastic bot added the Stalled label Aug 18, 2023
@botelastic
Copy link

botelastic bot commented Sep 17, 2023

Hi! This PR has been stale for a while and we're going to close it as part of our cleanup procedure. We appreciate your contribution and would like to apologize if we have not been able to review it, due to the current heavy load of the team. Feel free to re-open this PR if you think it should stay open and is worth rebasing. Thank you for your contribution!

@botelastic botelastic bot closed this Sep 17, 2023
@botelastic botelastic bot removed the Stalled label Oct 17, 2023
@agithomas
Copy link
Contributor

@rajvi-elastic ,

please wait till #8204 is merged .

@rajvi-patel-22 rajvi-patel-22 self-assigned this Oct 26, 2023
@rajvi-patel-22
Copy link
Contributor Author

Another PR has been raised for HAProxy lens migration.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request Integration:haproxy HAProxy Team:Service-Integrations Label for the Service Integrations team v8.4.0
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants