instana-client 1.0.0__py3-none-any.whl → 1.0.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (604) hide show
  1. instana_client/__init__.py +91 -9
  2. instana_client/api/__init__.py +8 -0
  3. instana_client/api/action_catalog_api.py +329 -6
  4. instana_client/api/action_history_api.py +54 -2
  5. instana_client/api/ai_management_api.py +1973 -0
  6. instana_client/api/apdex_report_api.py +2 -2
  7. instana_client/api/apdex_settings_api.py +8 -9
  8. instana_client/api/api_token_api.py +23 -24
  9. instana_client/api/application_alert_configuration_api.py +79 -66
  10. instana_client/api/application_analyze_api.py +20 -282
  11. instana_client/api/application_catalog_api.py +11 -11
  12. instana_client/api/application_metrics_api.py +14 -14
  13. instana_client/api/application_resources_api.py +171 -44
  14. instana_client/api/application_settings_api.py +134 -104
  15. instana_client/api/application_topology_api.py +11 -2
  16. instana_client/api/audit_log_api.py +2 -2
  17. instana_client/api/authentication_api.py +14 -30
  18. instana_client/api/business_monitoring_api.py +2 -2
  19. instana_client/api/custom_dashboards_api.py +29 -19
  20. instana_client/api/custom_entities_api.py +1398 -0
  21. instana_client/api/end_user_monitoring_api.py +310 -0
  22. instana_client/api/event_settings_api.py +1365 -658
  23. instana_client/api/events_api.py +11 -26
  24. instana_client/api/global_application_alert_configuration_api.py +53 -56
  25. instana_client/api/groups_api.py +888 -87
  26. instana_client/api/health_api.py +8 -5
  27. instana_client/api/host_agent_api.py +274 -8
  28. instana_client/api/infrastructure_alert_configuration_api.py +50 -30
  29. instana_client/api/infrastructure_analyze_api.py +14 -14
  30. instana_client/api/infrastructure_catalog_api.py +44 -13
  31. instana_client/api/infrastructure_metrics_api.py +5 -5
  32. instana_client/api/infrastructure_resources_api.py +11 -11
  33. instana_client/api/infrastructure_topology_api.py +2 -2
  34. instana_client/api/log_alert_configuration_api.py +50 -30
  35. instana_client/api/logging_analyze_api.py +343 -0
  36. instana_client/api/maintenance_configuration_api.py +32 -20
  37. instana_client/api/mobile_app_analyze_api.py +2 -2
  38. instana_client/api/mobile_app_catalog_api.py +8 -2
  39. instana_client/api/mobile_app_configuration_api.py +3058 -334
  40. instana_client/api/mobile_app_metrics_api.py +3 -6
  41. instana_client/api/policies_api.py +14 -11
  42. instana_client/api/releases_api.py +8 -11
  43. instana_client/api/roles_api.py +1410 -0
  44. instana_client/api/service_levels_alert_configuration_api.py +2 -2
  45. instana_client/api/service_levels_objective_slo_configurations_api.py +211 -87
  46. instana_client/api/service_levels_objective_slo_report_api.py +38 -2
  47. instana_client/api/session_settings_api.py +2 -2
  48. instana_client/api/sli_report_api.py +2 -2
  49. instana_client/api/sli_settings_api.py +5 -8
  50. instana_client/api/slo_correction_configurations_api.py +1537 -0
  51. instana_client/api/slo_correction_windows_api.py +392 -0
  52. instana_client/api/synthetic_alert_configuration_api.py +53 -56
  53. instana_client/api/synthetic_calls_api.py +20 -9
  54. instana_client/api/synthetic_catalog_api.py +20 -2
  55. instana_client/api/synthetic_metrics_api.py +5 -5
  56. instana_client/api/synthetic_settings_api.py +1915 -477
  57. instana_client/api/synthetic_test_playback_results_api.py +307 -20
  58. instana_client/api/teams_api.py +1380 -0
  59. instana_client/api/usage_api.py +2 -2
  60. instana_client/api/user_api.py +41 -28
  61. instana_client/api/website_analyze_api.py +8 -8
  62. instana_client/api/website_catalog_api.py +11 -8
  63. instana_client/api/website_configuration_api.py +1801 -336
  64. instana_client/api/website_metrics_api.py +3 -3
  65. instana_client/api_client.py +3 -3
  66. instana_client/configuration.py +14 -7
  67. instana_client/exceptions.py +2 -2
  68. instana_client/models/__init__.py +626 -11
  69. instana_client/models/abstract_integration.py +11 -5
  70. instana_client/models/abstract_rule.py +2 -2
  71. instana_client/models/access_log_entry.py +12 -7
  72. instana_client/models/access_log_response.py +2 -2
  73. instana_client/models/access_rule.py +2 -2
  74. instana_client/models/action.py +2 -2
  75. instana_client/models/action_configuration.py +2 -2
  76. instana_client/models/action_instance.py +2 -2
  77. instana_client/models/action_instance_metadata_entry.py +2 -2
  78. instana_client/models/action_instance_parameter.py +2 -2
  79. instana_client/models/action_instance_request.py +2 -2
  80. instana_client/models/action_instance_request_parameters.py +2 -2
  81. instana_client/models/action_match.py +19 -6
  82. instana_client/models/action_search_space.py +2 -2
  83. instana_client/models/adaptive_baseline.py +3 -3
  84. instana_client/models/adaptive_threshold_rule.py +3 -3
  85. instana_client/models/addition.py +97 -0
  86. instana_client/models/adjusted_timeframe.py +2 -2
  87. instana_client/models/agent_configuration_update.py +2 -2
  88. instana_client/models/alerting_configuration.py +2 -2
  89. instana_client/models/alerting_configuration_with_last_updated.py +2 -2
  90. instana_client/models/alerting_time_window.py +2 -2
  91. instana_client/models/apdex_configuration.py +2 -2
  92. instana_client/models/apdex_configuration_input.py +2 -2
  93. instana_client/models/apdex_entity.py +2 -2
  94. instana_client/models/apdex_report.py +2 -2
  95. instana_client/models/api_create_group.py +2 -2
  96. instana_client/models/api_create_role.py +101 -0
  97. instana_client/models/api_group.py +2 -2
  98. instana_client/models/api_member.py +5 -3
  99. instana_client/models/api_permission_set.py +12 -3
  100. instana_client/models/api_restricted_application_filter.py +2 -2
  101. instana_client/models/api_role.py +102 -0
  102. instana_client/models/api_tag.py +91 -0
  103. instana_client/models/api_team.py +113 -0
  104. instana_client/models/api_team_info.py +89 -0
  105. instana_client/models/api_team_member.py +102 -0
  106. instana_client/models/api_team_role.py +92 -0
  107. instana_client/models/api_team_scope.py +131 -0
  108. instana_client/models/api_token.py +35 -5
  109. instana_client/models/app_data_metric_configuration.py +2 -2
  110. instana_client/models/application.py +2 -2
  111. instana_client/models/application_alert_config.py +2 -2
  112. instana_client/models/application_alert_config_with_metadata.py +2 -2
  113. instana_client/models/application_alert_rule.py +2 -2
  114. instana_client/models/application_apdex_entity.py +2 -2
  115. instana_client/models/application_config.py +2 -2
  116. instana_client/models/application_event_result.py +6 -7
  117. instana_client/models/application_item.py +2 -2
  118. instana_client/models/application_metric_result.py +2 -2
  119. instana_client/models/application_node.py +2 -2
  120. instana_client/models/application_result.py +2 -2
  121. instana_client/models/application_scope.py +4 -4
  122. instana_client/models/application_scope_with_metadata.py +6 -6
  123. instana_client/models/application_sli_entity.py +2 -2
  124. instana_client/models/application_slo_entity.py +2 -2
  125. instana_client/models/application_time_threshold.py +2 -2
  126. instana_client/models/arithmetic_configuration.py +123 -0
  127. instana_client/models/arithmetic_operand.py +154 -0
  128. instana_client/models/arithmetic_operation.py +128 -0
  129. instana_client/models/audit_log_entry.py +2 -2
  130. instana_client/models/audit_log_ui_response.py +2 -2
  131. instana_client/models/author.py +2 -2
  132. instana_client/models/availability_blueprint_indicator.py +5 -16
  133. instana_client/models/availability_sli_entity.py +2 -2
  134. instana_client/models/available_metrics.py +2 -2
  135. instana_client/models/available_plugins.py +2 -2
  136. instana_client/models/backend_trace_reference.py +2 -2
  137. instana_client/models/bidirectional_ms_teams_app_integration.py +108 -0
  138. instana_client/models/bidirectional_slack_app_integration.py +104 -0
  139. instana_client/models/binary_operator_dto.py +2 -2
  140. instana_client/models/browser_script_configuration.py +5 -3
  141. instana_client/models/browser_script_configuration_update.py +129 -0
  142. instana_client/models/built_in_event_specification.py +2 -2
  143. instana_client/models/built_in_event_specification_with_last_updated.py +2 -2
  144. instana_client/models/business_activity.py +5 -3
  145. instana_client/models/business_perspective_config.py +2 -2
  146. instana_client/models/call_groups_item.py +2 -2
  147. instana_client/models/call_groups_result.py +2 -2
  148. instana_client/models/call_relation.py +2 -2
  149. instana_client/models/change_summary.py +2 -2
  150. instana_client/models/cloudfoundry_physical_context.py +4 -4
  151. instana_client/models/condition.py +2 -2
  152. instana_client/models/config_version.py +2 -2
  153. instana_client/models/correction.py +105 -0
  154. instana_client/models/correction_configuration.py +110 -0
  155. instana_client/models/correction_scheduling.py +105 -0
  156. instana_client/models/correction_window.py +95 -0
  157. instana_client/models/crash_mobile_app_alert_rule.py +2 -2
  158. instana_client/models/create_website_request_inner.py +90 -0
  159. instana_client/models/cursor_paginated_business_activity_item.py +2 -2
  160. instana_client/models/cursor_pagination.py +2 -2
  161. instana_client/models/cursor_pagination_infra_explore_cursor.py +2 -2
  162. instana_client/models/custom_blueprint_indicator.py +8 -4
  163. instana_client/models/custom_dashboard.py +2 -2
  164. instana_client/models/custom_dashboard_preview.py +2 -2
  165. instana_client/models/custom_dashboard_with_user_specific_information.py +115 -0
  166. instana_client/models/custom_dependency.py +119 -0
  167. instana_client/models/custom_email_subject_prefix.py +2 -2
  168. instana_client/models/custom_entity_model.py +126 -0
  169. instana_client/models/custom_entity_with_metadata.py +98 -0
  170. instana_client/models/custom_event_mobile_app_alert_rule.py +2 -2
  171. instana_client/models/custom_event_specification.py +9 -3
  172. instana_client/models/custom_event_specification_with_last_updated.py +9 -3
  173. instana_client/models/custom_event_website_alert_rule.py +2 -2
  174. instana_client/models/custom_metric.py +134 -0
  175. instana_client/models/custom_payload_configuration.py +2 -2
  176. instana_client/models/custom_payload_field.py +2 -2
  177. instana_client/models/custom_payload_with_last_updated.py +2 -2
  178. instana_client/models/custom_payload_with_version.py +101 -0
  179. instana_client/models/dashboard_api_token.py +2 -2
  180. instana_client/models/database_integration.py +2 -2
  181. instana_client/models/deprecated_tag_filter.py +4 -4
  182. instana_client/models/division.py +97 -0
  183. instana_client/models/dns_configuration.py +146 -0
  184. instana_client/models/dns_configuration_update.py +143 -0
  185. instana_client/models/dns_filter_query_time.py +99 -0
  186. instana_client/models/dns_filter_target_value.py +106 -0
  187. instana_client/models/duration.py +2 -2
  188. instana_client/models/dynamic_field.py +2 -2
  189. instana_client/models/dynamic_field_value.py +2 -2
  190. instana_client/models/dynamic_parameter.py +2 -2
  191. instana_client/models/edit_user.py +2 -2
  192. instana_client/models/email_integration.py +2 -2
  193. instana_client/models/empty_configuration.py +2 -2
  194. instana_client/models/endpoint.py +4 -4
  195. instana_client/models/endpoint_config.py +2 -2
  196. instana_client/models/endpoint_event_result.py +8 -9
  197. instana_client/models/endpoint_item.py +2 -2
  198. instana_client/models/endpoint_metric_result.py +2 -2
  199. instana_client/models/endpoint_node.py +2 -2
  200. instana_client/models/endpoint_result.py +3 -3
  201. instana_client/models/endpoint_simple.py +3 -3
  202. instana_client/models/entity_count_rule.py +2 -2
  203. instana_client/models/entity_count_verification_rule.py +3 -3
  204. instana_client/models/entity_health_info.py +2 -2
  205. instana_client/models/entity_id.py +2 -2
  206. instana_client/models/entity_verification_rule.py +3 -3
  207. instana_client/models/error_budget_alert_rule.py +5 -5
  208. instana_client/models/errors_application_alert_rule.py +2 -2
  209. instana_client/models/event.py +11 -3
  210. instana_client/models/event_filtering_configuration.py +2 -2
  211. instana_client/models/event_result.py +4 -3
  212. instana_client/models/event_specification_info.py +2 -2
  213. instana_client/models/extended_service.py +2 -2
  214. instana_client/models/failure_synthetic_alert_rule.py +2 -2
  215. instana_client/models/fixed_http_path_segment_matching_rule.py +2 -2
  216. instana_client/models/fixed_time_window.py +4 -3
  217. instana_client/models/generic_infra_alert_rule.py +12 -4
  218. instana_client/models/geo_location_configuration.py +2 -2
  219. instana_client/models/geo_mapping_rule.py +2 -2
  220. instana_client/models/geo_subdivision.py +2 -2
  221. instana_client/models/get_activities.py +2 -2
  222. instana_client/models/get_application_metrics.py +2 -2
  223. instana_client/models/get_applications.py +2 -2
  224. instana_client/models/get_available_metrics_query.py +2 -2
  225. instana_client/models/get_available_plugins_query.py +2 -2
  226. instana_client/models/get_call_groups.py +2 -2
  227. instana_client/models/get_combined_metrics.py +2 -2
  228. instana_client/models/get_dynamic_parameter_values.py +2 -2
  229. instana_client/models/get_endpoints.py +2 -2
  230. instana_client/models/get_infrastructure_groups_query.py +2 -2
  231. instana_client/models/get_infrastructure_query.py +2 -2
  232. instana_client/models/get_metrics_result.py +2 -2
  233. instana_client/models/get_mobile_app_beacon_groups.py +2 -2
  234. instana_client/models/get_mobile_app_beacons.py +2 -2
  235. instana_client/models/get_mobile_app_metrics.py +2 -2
  236. instana_client/models/get_mobile_app_metrics_v2.py +2 -2
  237. instana_client/models/get_payload_keys_result.py +2 -2
  238. instana_client/models/get_services.py +2 -2
  239. instana_client/models/get_snapshots_query.py +2 -2
  240. instana_client/models/get_test_result.py +2 -2
  241. instana_client/models/get_test_result_analytic.py +126 -0
  242. instana_client/models/get_test_result_base.py +2 -2
  243. instana_client/models/get_test_result_list.py +2 -2
  244. instana_client/models/get_test_summary_result.py +2 -2
  245. instana_client/models/get_trace_download_result_item.py +3 -3
  246. instana_client/models/get_trace_groups.py +2 -2
  247. instana_client/models/get_traces.py +4 -4
  248. instana_client/models/get_website_beacon_groups.py +2 -2
  249. instana_client/models/get_website_beacons.py +2 -2
  250. instana_client/models/get_website_metrics.py +2 -2
  251. instana_client/models/get_website_metrics_v2.py +2 -2
  252. instana_client/models/global_application_alert_config_with_metadata.py +2 -2
  253. instana_client/models/global_applications_alert_config.py +2 -2
  254. instana_client/models/google_chat_integration.py +2 -2
  255. instana_client/models/graph_edge.py +2 -2
  256. instana_client/models/graph_node.py +2 -2
  257. instana_client/models/group.py +2 -2
  258. instana_client/models/group_by_tag.py +2 -2
  259. instana_client/models/group_mapping.py +5 -3
  260. instana_client/models/group_mapping_overview.py +96 -0
  261. instana_client/models/health_state.py +2 -2
  262. instana_client/models/historic_baseline.py +3 -3
  263. instana_client/models/host_availability_rule.py +2 -2
  264. instana_client/models/http_action_configuration.py +2 -2
  265. instana_client/models/http_action_configuration_update.py +138 -0
  266. instana_client/models/http_endpoint_config.py +2 -2
  267. instana_client/models/http_endpoint_rule.py +2 -2
  268. instana_client/models/http_path_segment_matching_rule.py +2 -2
  269. instana_client/models/http_script_configuration.py +5 -3
  270. instana_client/models/http_script_configuration_update.py +115 -0
  271. instana_client/models/hyper_param.py +2 -2
  272. instana_client/models/identity_provider_patch.py +2 -2
  273. instana_client/models/impacted_beacon_info.py +96 -0
  274. instana_client/models/infra_alert_config.py +8 -6
  275. instana_client/models/infra_alert_config_with_metadata.py +7 -5
  276. instana_client/models/infra_alert_rule.py +9 -3
  277. instana_client/models/infra_event_result.py +7 -8
  278. instana_client/models/infra_metric_configuration.py +103 -80
  279. instana_client/models/infra_slo_entity.py +95 -0
  280. instana_client/models/infra_time_threshold.py +2 -2
  281. instana_client/models/infrastructure_entities_result.py +2 -2
  282. instana_client/models/infrastructure_group.py +5 -3
  283. instana_client/models/infrastructure_groups_result.py +2 -2
  284. instana_client/models/infrastructure_item.py +2 -2
  285. instana_client/models/infrastructure_metric_result.py +2 -2
  286. instana_client/models/instana_version_info.py +2 -2
  287. instana_client/models/integration_overview.py +14 -4
  288. instana_client/models/invitation.py +6 -4
  289. instana_client/models/invitation_response.py +2 -2
  290. instana_client/models/invitation_result.py +2 -2
  291. instana_client/models/ip_masking_configuration.py +2 -2
  292. instana_client/models/js_stack_trace_line.py +2 -2
  293. instana_client/models/kubernetes_physical_context.py +3 -3
  294. instana_client/models/latency_blueprint_indicator.py +5 -16
  295. instana_client/models/llm_egress_gateway.py +124 -0
  296. instana_client/models/location_status.py +2 -2
  297. instana_client/models/log_alert_config.py +8 -6
  298. instana_client/models/log_alert_config_with_metadata.py +8 -6
  299. instana_client/models/log_alert_rule.py +2 -2
  300. instana_client/models/log_count_alert_rule.py +2 -2
  301. instana_client/models/log_entry_actor.py +2 -2
  302. instana_client/models/log_event_result.py +6 -7
  303. instana_client/models/log_time_threshold.py +2 -2
  304. instana_client/models/log_volume_group.py +91 -0
  305. instana_client/models/log_volume_usage_item.py +101 -0
  306. instana_client/models/log_volume_usage_result.py +96 -0
  307. instana_client/models/logs_application_alert_rule.py +4 -4
  308. instana_client/models/maintenance_config.py +2 -2
  309. instana_client/models/maintenance_config_scheduling.py +2 -2
  310. instana_client/models/maintenance_config_v2.py +2 -2
  311. instana_client/models/maintenance_config_v2_with_state_and_occurrence.py +2 -2
  312. instana_client/models/maintenance_config_with_last_updated.py +2 -2
  313. instana_client/models/maintenance_window.py +2 -2
  314. instana_client/models/manual_alerting_channel_configuration.py +2 -2
  315. instana_client/models/manual_close_info.py +2 -2
  316. instana_client/models/manual_service_config.py +2 -2
  317. instana_client/models/match_all_http_path_segment_matching_rule.py +2 -2
  318. instana_client/models/match_expression_dto.py +3 -3
  319. instana_client/models/meta_data.py +2 -2
  320. instana_client/models/metric_api_result.py +2 -2
  321. instana_client/models/metric_config.py +2 -2
  322. instana_client/models/metric_configuration.py +3 -3
  323. instana_client/models/metric_description.py +2 -2
  324. instana_client/models/metric_instance.py +2 -2
  325. instana_client/models/metric_item.py +2 -2
  326. instana_client/models/metric_metadata.py +4 -4
  327. instana_client/models/metric_pattern.py +2 -2
  328. instana_client/models/metric_query.py +128 -0
  329. instana_client/models/metrics_result.py +2 -2
  330. instana_client/models/metrics_result_item.py +5 -3
  331. instana_client/models/metrics_test_result_item.py +2 -2
  332. instana_client/models/mobile_app.py +2 -2
  333. instana_client/models/mobile_app_alert_config.py +2 -2
  334. instana_client/models/mobile_app_alert_rule.py +8 -5
  335. instana_client/models/mobile_app_beacon_groups_item.py +2 -2
  336. instana_client/models/mobile_app_beacon_groups_result.py +2 -2
  337. instana_client/models/mobile_app_beacon_result.py +2 -2
  338. instana_client/models/mobile_app_beacon_tag_group.py +2 -2
  339. instana_client/models/mobile_app_beacons_item.py +11 -5
  340. instana_client/models/mobile_app_event_result.py +6 -7
  341. instana_client/models/mobile_app_metric_result.py +2 -2
  342. instana_client/models/mobile_app_monitoring_beacon.py +22 -4
  343. instana_client/models/mobile_app_monitoring_metric_description.py +5 -3
  344. instana_client/models/mobile_app_monitoring_metrics_configuration.py +2 -2
  345. instana_client/models/mobile_app_time_threshold.py +2 -2
  346. instana_client/models/model_field.py +2 -2
  347. instana_client/models/monitored_entities_stats.py +92 -0
  348. instana_client/models/monitoring_state.py +11 -3
  349. instana_client/models/multiple_scripts_configuration.py +2 -2
  350. instana_client/models/multiplication.py +97 -0
  351. instana_client/models/nested_operation.py +128 -0
  352. instana_client/models/new_application_config.py +2 -2
  353. instana_client/models/new_business_perspective_config.py +2 -2
  354. instana_client/models/new_manual_service_config.py +2 -2
  355. instana_client/models/o_auth_config.py +110 -0
  356. instana_client/models/o_auth_integration.py +98 -0
  357. instana_client/models/o_auth_token.py +111 -0
  358. instana_client/models/occurrence.py +2 -2
  359. instana_client/models/office365_integration.py +2 -2
  360. instana_client/models/one_time_maintenance_window.py +2 -2
  361. instana_client/models/opsgenie_integration.py +2 -2
  362. instana_client/models/order.py +2 -2
  363. instana_client/models/pagerduty_integration.py +2 -2
  364. instana_client/models/paginated_result.py +2 -2
  365. instana_client/models/pagination.py +2 -2
  366. instana_client/models/parameter.py +2 -2
  367. instana_client/models/parameter_value.py +2 -2
  368. instana_client/models/path_parameter_http_path_segment_matching_rule.py +2 -2
  369. instana_client/models/physical_context.py +3 -3
  370. instana_client/models/plugin_result.py +2 -2
  371. instana_client/models/policy.py +2 -2
  372. instana_client/models/policy_runnable.py +2 -2
  373. instana_client/models/policy_scheduling.py +91 -0
  374. instana_client/models/post_mobile_app_source_map_config_request.py +88 -0
  375. instana_client/models/post_snapshots_result.py +2 -2
  376. instana_client/models/problem.py +2 -2
  377. instana_client/models/prometheus_webhook_integration.py +2 -2
  378. instana_client/models/recurrent_maintenance_window.py +2 -2
  379. instana_client/models/release.py +6 -6
  380. instana_client/models/release_scope.py +2 -2
  381. instana_client/models/release_with_metadata.py +8 -8
  382. instana_client/models/retention_period.py +101 -0
  383. instana_client/models/rolling_time_window.py +4 -3
  384. instana_client/models/rule_input.py +2 -2
  385. instana_client/models/rule_with_threshold_application_alert_rule.py +2 -2
  386. instana_client/models/rule_with_threshold_infra_alert_rule.py +2 -2
  387. instana_client/models/rule_with_threshold_log_alert_rule.py +2 -2
  388. instana_client/models/rule_with_threshold_mobile_app_alert_rule.py +2 -2
  389. instana_client/models/rule_with_threshold_website_alert_rule.py +2 -2
  390. instana_client/models/run_configuration.py +2 -2
  391. instana_client/models/salesforce_integration.py +2 -2
  392. instana_client/models/saturation_blueprint_indicator.py +97 -0
  393. instana_client/models/scope_binding.py +2 -2
  394. instana_client/models/search_field_result.py +2 -2
  395. instana_client/models/service.py +3 -3
  396. instana_client/models/service_config.py +2 -2
  397. instana_client/models/service_event_result.py +6 -7
  398. instana_client/models/service_item.py +2 -2
  399. instana_client/models/service_level_indicator.py +10 -7
  400. instana_client/models/service_level_objective_alert_rule.py +2 -2
  401. instana_client/models/service_level_objective_configuration.py +3 -3
  402. instana_client/models/service_levels_alert_config.py +15 -5
  403. instana_client/models/service_levels_alert_rule.py +2 -2
  404. instana_client/models/service_levels_burn_rate_config.py +115 -0
  405. instana_client/models/service_levels_burn_rate_time_windows.py +2 -2
  406. instana_client/models/service_levels_static_threshold_config.py +100 -0
  407. instana_client/models/service_levels_time_threshold.py +5 -5
  408. instana_client/models/service_levelse_alert_config_with_metadata.py +15 -5
  409. instana_client/models/service_map.py +2 -2
  410. instana_client/models/service_map_connection.py +2 -2
  411. instana_client/models/service_matching_rule.py +2 -2
  412. instana_client/models/service_metric_result.py +2 -2
  413. instana_client/models/service_node.py +2 -2
  414. instana_client/models/service_now_enhanced_integration.py +2 -2
  415. instana_client/models/service_now_integration.py +2 -2
  416. instana_client/models/service_result.py +3 -3
  417. instana_client/models/service_scope.py +4 -4
  418. instana_client/models/service_scope_with_metadata.py +5 -5
  419. instana_client/models/service_scoped_to.py +3 -3
  420. instana_client/models/service_scoped_to_with_metadata.py +4 -4
  421. instana_client/models/service_simple.py +2 -2
  422. instana_client/models/session_settings.py +4 -4
  423. instana_client/models/simple_metric_configuration.py +123 -0
  424. instana_client/models/single_value.py +128 -0
  425. instana_client/models/slack_integration.py +2 -2
  426. instana_client/models/sli_configuration.py +2 -2
  427. instana_client/models/sli_configuration_with_last_updated.py +2 -2
  428. instana_client/models/sli_entity.py +2 -2
  429. instana_client/models/sli_report.py +2 -2
  430. instana_client/models/slo_config_with_rbac_tag.py +128 -0
  431. instana_client/models/slo_entity.py +8 -5
  432. instana_client/models/slo_report.py +2 -2
  433. instana_client/models/slowness_application_alert_rule.py +2 -2
  434. instana_client/models/slowness_mobile_app_alert_rule.py +90 -0
  435. instana_client/models/slowness_website_alert_rule.py +2 -2
  436. instana_client/models/snapshot_item.py +2 -2
  437. instana_client/models/snapshot_preview.py +7 -7
  438. instana_client/models/snapshot_result.py +2 -2
  439. instana_client/models/software_user.py +2 -2
  440. instana_client/models/software_version.py +2 -2
  441. instana_client/models/source_map_file_blob.py +2 -2
  442. instana_client/models/source_map_file_meta.py +2 -2
  443. instana_client/models/source_map_upload_config.py +2 -2
  444. instana_client/models/source_map_upload_configs.py +106 -0
  445. instana_client/models/span_excerpt.py +12 -12
  446. instana_client/models/span_relation.py +3 -3
  447. instana_client/models/specific_js_errors_website_alert_rule.py +4 -4
  448. instana_client/models/splunk_integration.py +2 -2
  449. instana_client/models/ssl_certificate_configuration.py +17 -5
  450. instana_client/models/ssl_certificate_configuration_update.py +107 -0
  451. instana_client/models/ssl_certificate_validation.py +99 -0
  452. instana_client/models/stack_trace_item.py +7 -7
  453. instana_client/models/stack_trace_line.py +2 -2
  454. instana_client/models/static_baseline_threshold_rule.py +3 -3
  455. instana_client/models/static_string_field.py +2 -2
  456. instana_client/models/static_threshold.py +2 -2
  457. instana_client/models/static_threshold_rule.py +2 -2
  458. instana_client/models/status_code_application_alert_rule.py +2 -2
  459. instana_client/models/status_code_mobile_app_alert_rule.py +4 -4
  460. instana_client/models/status_code_website_alert_rule.py +4 -4
  461. instana_client/models/subtraction.py +97 -0
  462. instana_client/models/synthetic_alert_config.py +2 -2
  463. instana_client/models/synthetic_alert_config_with_metadata.py +2 -2
  464. instana_client/models/synthetic_alert_rule.py +2 -2
  465. instana_client/models/synthetic_bulk_response.py +92 -0
  466. instana_client/models/synthetic_call_config.py +4 -4
  467. instana_client/models/synthetic_call_rule.py +6 -6
  468. instana_client/models/synthetic_call_with_defaults_config.py +4 -4
  469. instana_client/models/synthetic_configuration.py +93 -0
  470. instana_client/models/synthetic_configuration_update.py +95 -0
  471. instana_client/models/synthetic_credential.py +23 -3
  472. instana_client/models/synthetic_datacenter.py +2 -2
  473. instana_client/models/synthetic_datacenter_configuration.py +2 -2
  474. instana_client/models/synthetic_geo_point.py +2 -2
  475. instana_client/models/synthetic_location.py +2 -2
  476. instana_client/models/synthetic_location_configuration.py +2 -2
  477. instana_client/models/synthetic_metric_configuration.py +2 -2
  478. instana_client/models/synthetic_metric_tag_group.py +18 -5
  479. instana_client/models/synthetic_playback_capabilities.py +17 -4
  480. instana_client/models/synthetic_resource_update_list_dns_filter_target_value_list_dns_filter_target_value.py +105 -0
  481. instana_client/models/synthetic_resource_update_list_ssl_certificate_validation_list_ssl_certificate_validation.py +105 -0
  482. instana_client/models/synthetic_resource_update_list_string_list_string.py +90 -0
  483. instana_client/models/synthetic_resource_update_map_string_string_list_string.py +90 -0
  484. instana_client/models/synthetic_slo_entity.py +7 -5
  485. instana_client/models/synthetic_test.py +27 -3
  486. instana_client/models/synthetic_test_cicd.py +96 -0
  487. instana_client/models/synthetic_test_cicd_customization.py +96 -0
  488. instana_client/models/synthetic_test_cicd_item.py +114 -0
  489. instana_client/models/synthetic_test_cicd_response.py +92 -0
  490. instana_client/models/synthetic_test_deep_update.py +122 -0
  491. instana_client/models/synthetic_test_shallow_update.py +122 -0
  492. instana_client/models/synthetic_test_update.py +147 -0
  493. instana_client/models/synthetic_time_threshold.py +2 -2
  494. instana_client/models/synthetic_type_configuration.py +11 -11
  495. instana_client/models/synthetic_type_configuration_update.py +152 -0
  496. instana_client/models/synthetics_event_result.py +6 -7
  497. instana_client/models/system_rule.py +2 -2
  498. instana_client/models/system_rule_label.py +2 -2
  499. instana_client/models/tag.py +6 -6
  500. instana_client/models/tag_catalog.py +2 -2
  501. instana_client/models/tag_filter.py +22 -10
  502. instana_client/models/tag_filter_all_of_value.py +195 -0
  503. instana_client/models/tag_filter_expression.py +2 -2
  504. instana_client/models/tag_filter_expression_element.py +2 -2
  505. instana_client/models/tag_matcher_dto.py +2 -2
  506. instana_client/models/tag_tree_level.py +2 -2
  507. instana_client/models/tag_tree_node.py +2 -2
  508. instana_client/models/tag_tree_tag.py +2 -2
  509. instana_client/models/test_common_properties.py +2 -2
  510. instana_client/models/test_last_error.py +90 -0
  511. instana_client/models/test_result.py +2 -2
  512. instana_client/models/test_result_common_properties.py +24 -3
  513. instana_client/models/test_result_detail_data.py +2 -2
  514. instana_client/models/test_result_item.py +2 -2
  515. instana_client/models/test_result_list_item.py +2 -2
  516. instana_client/models/test_result_list_result.py +2 -2
  517. instana_client/models/test_result_metadata.py +2 -2
  518. instana_client/models/test_result_subtransaction.py +2 -2
  519. instana_client/models/threshold.py +2 -2
  520. instana_client/models/threshold_config_rule.py +2 -2
  521. instana_client/models/threshold_rule.py +2 -2
  522. instana_client/models/throughput_application_alert_rule.py +2 -2
  523. instana_client/models/throughput_mobile_app_alert_rule.py +2 -2
  524. instana_client/models/throughput_website_alert_rule.py +2 -2
  525. instana_client/models/time_frame.py +2 -2
  526. instana_client/models/time_window.py +5 -4
  527. instana_client/models/topology.py +2 -2
  528. instana_client/models/trace.py +8 -8
  529. instana_client/models/trace_activity_tree_node_details.py +27 -15
  530. instana_client/models/trace_download_result.py +2 -2
  531. instana_client/models/trace_groups_item.py +2 -2
  532. instana_client/models/trace_groups_result.py +2 -2
  533. instana_client/models/trace_impact_application_time_threshold.py +2 -2
  534. instana_client/models/trace_item.py +2 -2
  535. instana_client/models/trace_result.py +2 -2
  536. instana_client/models/traffic_blueprint_indicator.py +3 -3
  537. instana_client/models/trigger.py +15 -7
  538. instana_client/models/type_configuration.py +2 -2
  539. instana_client/models/unsupported_http_path_segment_matching_rule.py +2 -2
  540. instana_client/models/updated_business_perspective_config.py +2 -2
  541. instana_client/models/usage_result.py +2 -2
  542. instana_client/models/usage_result_items.py +2 -2
  543. instana_client/models/user_basic_result.py +2 -2
  544. instana_client/models/user_impact_mobile_app_time_threshold.py +3 -3
  545. instana_client/models/user_impact_website_time_threshold.py +3 -3
  546. instana_client/models/user_result.py +2 -2
  547. instana_client/models/users_result.py +2 -2
  548. instana_client/models/validated_alerting_channel_input_info.py +4 -4
  549. instana_client/models/validated_alerting_configuration.py +2 -2
  550. instana_client/models/validated_maintenance_config_v2_with_state_and_occurrence.py +2 -2
  551. instana_client/models/validated_maintenance_config_with_status.py +2 -2
  552. instana_client/models/victor_ops_integration.py +2 -2
  553. instana_client/models/violations_in_period_application_time_threshold.py +2 -2
  554. instana_client/models/violations_in_period_mobile_app_time_threshold.py +2 -2
  555. instana_client/models/violations_in_period_website_time_threshold.py +2 -2
  556. instana_client/models/violations_in_sequence_application_time_threshold.py +2 -2
  557. instana_client/models/violations_in_sequence_infra_time_threshold.py +2 -2
  558. instana_client/models/violations_in_sequence_log_time_threshold.py +2 -2
  559. instana_client/models/violations_in_sequence_mobile_app_time_threshold.py +2 -2
  560. instana_client/models/violations_in_sequence_synthetic_time_threshold.py +2 -2
  561. instana_client/models/violations_in_sequence_website_time_threshold.py +2 -2
  562. instana_client/models/watson_ai_ops_webhook_integration.py +2 -2
  563. instana_client/models/webex_teams_webhook_integration.py +2 -2
  564. instana_client/models/webhook_integration.py +14 -4
  565. instana_client/models/webpage_action_configuration.py +2 -2
  566. instana_client/models/webpage_action_configuration_update.py +109 -0
  567. instana_client/models/webpage_script_configuration.py +5 -3
  568. instana_client/models/webpage_script_configuration_update.py +111 -0
  569. instana_client/models/website.py +2 -2
  570. instana_client/models/website_alert_config.py +2 -2
  571. instana_client/models/website_alert_config_with_metadata.py +2 -2
  572. instana_client/models/website_alert_rule.py +2 -2
  573. instana_client/models/website_apdex_entity.py +2 -2
  574. instana_client/models/website_beacon_groups_item.py +2 -2
  575. instana_client/models/website_beacon_groups_result.py +2 -2
  576. instana_client/models/website_beacon_result.py +2 -2
  577. instana_client/models/website_beacon_tag_group.py +2 -2
  578. instana_client/models/website_beacons_item.py +11 -5
  579. instana_client/models/website_event_based_sli_entity.py +2 -2
  580. instana_client/models/website_event_result.py +5 -6
  581. instana_client/models/website_metric_result.py +2 -2
  582. instana_client/models/website_monitoring_beacon.py +7 -3
  583. instana_client/models/website_monitoring_metric_description.py +2 -2
  584. instana_client/models/website_monitoring_metrics_configuration.py +2 -2
  585. instana_client/models/website_slo_entity.py +2 -2
  586. instana_client/models/website_time_based_sli_entity.py +2 -2
  587. instana_client/models/website_time_threshold.py +2 -2
  588. instana_client/models/widget.py +2 -2
  589. instana_client/models/with_metadata.py +2 -2
  590. instana_client/models/with_resolved_name.py +2 -2
  591. instana_client/models/z_chat_ops_integration.py +2 -2
  592. instana_client/rest.py +3 -2
  593. instana_client-1.0.3.dist-info/METADATA +1097 -0
  594. instana_client-1.0.3.dist-info/RECORD +599 -0
  595. {instana_client-1.0.0.dist-info → instana_client-1.0.3.dist-info}/WHEEL +1 -1
  596. instana_client/models/dns_action_configuration.py +0 -134
  597. instana_client/models/dns_action_filter_query_time.py +0 -99
  598. instana_client/models/dns_action_filter_target_value.py +0 -106
  599. instana_client/models/full_trace.py +0 -97
  600. instana_client/models/span.py +0 -156
  601. instana_client-1.0.0.dist-info/METADATA +0 -25
  602. instana_client-1.0.0.dist-info/RECORD +0 -515
  603. {instana_client-1.0.0.dist-info → instana_client-1.0.3.dist-info}/licenses/LICENSE +0 -0
  604. {instana_client-1.0.0.dist-info → instana_client-1.0.3.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,97 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Instana REST API documentation
5
+
6
+ Documentation for INSTANA REST API
7
+
8
+ The version of the OpenAPI document: 1.309.1268
9
+ Contact: support@instana.com
10
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
11
+
12
+ Do not edit the class manually.
13
+ """ # noqa: E501
14
+
15
+
16
+ from __future__ import annotations
17
+ import pprint
18
+ import re # noqa: F401
19
+ import json
20
+
21
+ from pydantic import ConfigDict, Field, StrictStr
22
+ from typing import Any, ClassVar, Dict, List, Optional, Union
23
+ from typing_extensions import Annotated
24
+ from instana_client.models.service_level_indicator import ServiceLevelIndicator
25
+ from typing import Optional, Set
26
+ from typing_extensions import Self
27
+
28
+ class SaturationBlueprintIndicator(ServiceLevelIndicator):
29
+ """
30
+ SaturationBlueprintIndicator
31
+ """ # noqa: E501
32
+ metric_name: Optional[StrictStr] = Field(default=None, alias="metricName")
33
+ threshold: Optional[Union[Annotated[float, Field(strict=True, ge=0.0)], Annotated[int, Field(strict=True, ge=0)]]] = Field(default=None, description="Threshold Value for the Blueprint")
34
+ __properties: ClassVar[List[str]] = ["aggregation", "blueprint", "operator", "serviceLevelsMeasurement", "threshold", "type", "metricName"]
35
+
36
+ model_config = ConfigDict(
37
+ populate_by_name=True,
38
+ validate_assignment=True,
39
+ protected_namespaces=(),
40
+ )
41
+
42
+
43
+ def to_str(self) -> str:
44
+ """Returns the string representation of the model using alias"""
45
+ return pprint.pformat(self.model_dump(by_alias=True))
46
+
47
+ def to_json(self) -> str:
48
+ """Returns the JSON representation of the model using alias"""
49
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
50
+ return json.dumps(self.to_dict())
51
+
52
+ @classmethod
53
+ def from_json(cls, json_str: str) -> Optional[Self]:
54
+ """Create an instance of SaturationBlueprintIndicator from a JSON string"""
55
+ return cls.from_dict(json.loads(json_str))
56
+
57
+ def to_dict(self) -> Dict[str, Any]:
58
+ """Return the dictionary representation of the model using alias.
59
+
60
+ This has the following differences from calling pydantic's
61
+ `self.model_dump(by_alias=True)`:
62
+
63
+ * `None` is only added to the output dict for nullable fields that
64
+ were set at model initialization. Other fields with value `None`
65
+ are ignored.
66
+ """
67
+ excluded_fields: Set[str] = set([
68
+ ])
69
+
70
+ _dict = self.model_dump(
71
+ by_alias=True,
72
+ exclude=excluded_fields,
73
+ exclude_none=True,
74
+ )
75
+ return _dict
76
+
77
+ @classmethod
78
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
79
+ """Create an instance of SaturationBlueprintIndicator from a dict"""
80
+ if obj is None:
81
+ return None
82
+
83
+ if not isinstance(obj, dict):
84
+ return cls.model_validate(obj)
85
+
86
+ _obj = cls.model_validate({
87
+ "aggregation": obj.get("aggregation"),
88
+ "blueprint": obj.get("blueprint"),
89
+ "operator": obj.get("operator"),
90
+ "serviceLevelsMeasurement": obj.get("serviceLevelsMeasurement"),
91
+ "threshold": obj.get("threshold"),
92
+ "type": obj.get("type"),
93
+ "metricName": obj.get("metricName")
94
+ })
95
+ return _obj
96
+
97
+
@@ -3,9 +3,9 @@
3
3
  """
4
4
  Instana REST API documentation
5
5
 
6
- Searching for answers and best pratices? Check our [IBM Instana Community](https://community.ibm.com/community/user/aiops/communities/community-home?CommunityKey=58f324a3-3104-41be-9510-5b7c413cc48f). ## Overview The Instana REST API provides programmatic access to the Instana platform. It can be used to retrieve data available through the Instana UI Dashboard -- metrics, events, traces, etc -- and also to automate configuration tasks such as user management. ### Navigating the API documentation The API endpoints are grouped by product area and functionality. This generally maps to how our UI Dashboard is organized, hopefully making it easier to locate which endpoints you'd use to fetch the data you see visualized in our UI. The [UI sections](https://www.ibm.com/docs/en/instana-observability/current?topic=working-user-interface#navigation-menu) include: - Websites & Mobile Apps - Applications - Infrastructure - Synthetic Monitoring - Events - Automation - Service Levels - Settings - etc ### Rate Limiting A rate limit is applied to API usage. Up to 5,000 calls per hour can be made. How many remaining calls can be made and when this call limit resets, can inspected via three headers that are part of the responses of the API server. - **X-RateLimit-Limit:** Shows the maximum number of calls that may be executed per hour. - **X-RateLimit-Remaining:** How many calls may still be executed within the current hour. - **X-RateLimit-Reset:** Time when the remaining calls will be reset to the limit. For compatibility reasons with other rate limited APIs, this date is not the date in milliseconds, but instead in seconds since 1970-01-01T00:00:00+00:00. ### Further Reading We provide additional documentation for our REST API in our [product documentation](https://www.ibm.com/docs/en/instana-observability/current?topic=apis-web-rest-api). Here you'll also find some common queries for retrieving data and configuring Instana. ## Getting Started with the REST API ### API base URL The base URL for an specific instance of Instana can be determined using the tenant and unit information. - `base`: This is the base URL of a tenant unit, e.g. `https://test-example.instana.io`. This is the same URL that is used to access the Instana user interface. - `apiToken`: Requests against the Instana API require valid API tokens. An initial API token can be generated via the Instana user interface. Any additional API tokens can be generated via the API itself. ### Curl Example Here is an Example to use the REST API with Curl. First lets get all the available metrics with possible aggregations with a GET call. ```bash curl --request GET \\ --url https://test-instana.instana.io/api/application-monitoring/catalog/metrics \\ --header 'authorization: apiToken xxxxxxxxxxxxxxxx' ``` Next we can get every call grouped by the endpoint name that has an error count greater then zero. As a metric we could get the mean error rate for example. ```bash curl --request POST \\ --url https://test-instana.instana.io/api/application-monitoring/analyze/call-groups \\ --header 'authorization: apiToken xxxxxxxxxxxxxxxx' \\ --header 'content-type: application/json' \\ --data '{ \"group\":{ \"groupbyTag\":\"endpoint.name\" }, \"tagFilters\":[ { \"name\":\"call.error.count\", \"value\":\"0\", \"operator\":\"GREATER_THAN\" } ], \"metrics\":[ { \"metric\":\"errors\", \"aggregation\":\"MEAN\" } ] }' ``` ### Generating REST API clients The API is specified using the [OpenAPI v3](https://github.com/OAI/OpenAPI-Specification) (previously known as Swagger) format. You can download the current specification at our [GitHub API documentation](https://instana.github.io/openapi/openapi.yaml). OpenAPI tries to solve the issue of ever-evolving APIs and clients lagging behind. Please make sure that you always use the latest version of the generator, as a number of improvements are regularly made. To generate a client library for your language, you can use the [OpenAPI client generators](https://github.com/OpenAPITools/openapi-generator). #### Go For example, to generate a client library for Go to interact with our backend, you can use the following script; mind replacing the values of the `UNIT_NAME` and `TENANT_NAME` environment variables using those for your tenant unit: ```bash #!/bin/bash ### This script assumes you have the `java` and `wget` commands on the path export UNIT_NAME='myunit' # for example: prod export TENANT_NAME='mytenant' # for example: awesomecompany //Download the generator to your current working directory: wget https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/4.3.1/openapi-generator-cli-4.3.1.jar -O openapi-generator-cli.jar --server-variables \"tenant=${TENANT_NAME},unit=${UNIT_NAME}\" //generate a client library that you can vendor into your repository java -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g go \\ -o pkg/instana/openapi \\ --skip-validate-spec //(optional) format the Go code according to the Go code standard gofmt -s -w pkg/instana/openapi ``` The generated clients contain comprehensive READMEs, and you can start right away using the client from the example above: ```go import instana \"./pkg/instana/openapi\" // readTags will read all available application monitoring tags along with their type and category func readTags() { configuration := instana.NewConfiguration() configuration.Host = \"tenant-unit.instana.io\" configuration.BasePath = \"https://tenant-unit.instana.io\" client := instana.NewAPIClient(configuration) auth := context.WithValue(context.Background(), instana.ContextAPIKey, instana.APIKey{ Key: apiKey, Prefix: \"apiToken\", }) tags, _, err := client.ApplicationCatalogApi.GetApplicationTagCatalog(auth) if err != nil { fmt.Fatalf(\"Error calling the API, aborting.\") } for _, tag := range tags { fmt.Printf(\"%s (%s): %s\\n\", tag.Category, tag.Type, tag.Name) } } ``` #### Java Follow the instructions provided in the official documentation from [OpenAPI Tools](https://github.com/OpenAPITools) to download the [openapi-generator-cli.jar](https://github.com/OpenAPITools/openapi-generator?tab=readme-ov-file#13---download-jar). Depending on your environment, use one of the following java http client implementations which will create a valid client for our OpenAPI specification: ``` //Nativ Java HTTP Client java -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g java -o pkg/instana/openapi --skip-validate-spec -p dateLibrary=java8 --library native //Spring WebClient java -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g java -o pkg/instana/openapi --skip-validate-spec -p dateLibrary=java8,hideGenerationTimestamp=true --library webclient //Spring RestTemplate java -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g java -o pkg/instana/openapi --skip-validate-spec -p dateLibrary=java8,hideGenerationTimestamp=true --library resttemplate ```
6
+ Documentation for INSTANA REST API
7
7
 
8
- The version of the OpenAPI document: 1.291.1002
8
+ The version of the OpenAPI document: 1.309.1268
9
9
  Contact: support@instana.com
10
10
  Generated by OpenAPI Generator (https://openapi-generator.tech)
11
11
 
@@ -3,9 +3,9 @@
3
3
  """
4
4
  Instana REST API documentation
5
5
 
6
- Searching for answers and best pratices? Check our [IBM Instana Community](https://community.ibm.com/community/user/aiops/communities/community-home?CommunityKey=58f324a3-3104-41be-9510-5b7c413cc48f). ## Overview The Instana REST API provides programmatic access to the Instana platform. It can be used to retrieve data available through the Instana UI Dashboard -- metrics, events, traces, etc -- and also to automate configuration tasks such as user management. ### Navigating the API documentation The API endpoints are grouped by product area and functionality. This generally maps to how our UI Dashboard is organized, hopefully making it easier to locate which endpoints you'd use to fetch the data you see visualized in our UI. The [UI sections](https://www.ibm.com/docs/en/instana-observability/current?topic=working-user-interface#navigation-menu) include: - Websites & Mobile Apps - Applications - Infrastructure - Synthetic Monitoring - Events - Automation - Service Levels - Settings - etc ### Rate Limiting A rate limit is applied to API usage. Up to 5,000 calls per hour can be made. How many remaining calls can be made and when this call limit resets, can inspected via three headers that are part of the responses of the API server. - **X-RateLimit-Limit:** Shows the maximum number of calls that may be executed per hour. - **X-RateLimit-Remaining:** How many calls may still be executed within the current hour. - **X-RateLimit-Reset:** Time when the remaining calls will be reset to the limit. For compatibility reasons with other rate limited APIs, this date is not the date in milliseconds, but instead in seconds since 1970-01-01T00:00:00+00:00. ### Further Reading We provide additional documentation for our REST API in our [product documentation](https://www.ibm.com/docs/en/instana-observability/current?topic=apis-web-rest-api). Here you'll also find some common queries for retrieving data and configuring Instana. ## Getting Started with the REST API ### API base URL The base URL for an specific instance of Instana can be determined using the tenant and unit information. - `base`: This is the base URL of a tenant unit, e.g. `https://test-example.instana.io`. This is the same URL that is used to access the Instana user interface. - `apiToken`: Requests against the Instana API require valid API tokens. An initial API token can be generated via the Instana user interface. Any additional API tokens can be generated via the API itself. ### Curl Example Here is an Example to use the REST API with Curl. First lets get all the available metrics with possible aggregations with a GET call. ```bash curl --request GET \\ --url https://test-instana.instana.io/api/application-monitoring/catalog/metrics \\ --header 'authorization: apiToken xxxxxxxxxxxxxxxx' ``` Next we can get every call grouped by the endpoint name that has an error count greater then zero. As a metric we could get the mean error rate for example. ```bash curl --request POST \\ --url https://test-instana.instana.io/api/application-monitoring/analyze/call-groups \\ --header 'authorization: apiToken xxxxxxxxxxxxxxxx' \\ --header 'content-type: application/json' \\ --data '{ \"group\":{ \"groupbyTag\":\"endpoint.name\" }, \"tagFilters\":[ { \"name\":\"call.error.count\", \"value\":\"0\", \"operator\":\"GREATER_THAN\" } ], \"metrics\":[ { \"metric\":\"errors\", \"aggregation\":\"MEAN\" } ] }' ``` ### Generating REST API clients The API is specified using the [OpenAPI v3](https://github.com/OAI/OpenAPI-Specification) (previously known as Swagger) format. You can download the current specification at our [GitHub API documentation](https://instana.github.io/openapi/openapi.yaml). OpenAPI tries to solve the issue of ever-evolving APIs and clients lagging behind. Please make sure that you always use the latest version of the generator, as a number of improvements are regularly made. To generate a client library for your language, you can use the [OpenAPI client generators](https://github.com/OpenAPITools/openapi-generator). #### Go For example, to generate a client library for Go to interact with our backend, you can use the following script; mind replacing the values of the `UNIT_NAME` and `TENANT_NAME` environment variables using those for your tenant unit: ```bash #!/bin/bash ### This script assumes you have the `java` and `wget` commands on the path export UNIT_NAME='myunit' # for example: prod export TENANT_NAME='mytenant' # for example: awesomecompany //Download the generator to your current working directory: wget https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/4.3.1/openapi-generator-cli-4.3.1.jar -O openapi-generator-cli.jar --server-variables \"tenant=${TENANT_NAME},unit=${UNIT_NAME}\" //generate a client library that you can vendor into your repository java -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g go \\ -o pkg/instana/openapi \\ --skip-validate-spec //(optional) format the Go code according to the Go code standard gofmt -s -w pkg/instana/openapi ``` The generated clients contain comprehensive READMEs, and you can start right away using the client from the example above: ```go import instana \"./pkg/instana/openapi\" // readTags will read all available application monitoring tags along with their type and category func readTags() { configuration := instana.NewConfiguration() configuration.Host = \"tenant-unit.instana.io\" configuration.BasePath = \"https://tenant-unit.instana.io\" client := instana.NewAPIClient(configuration) auth := context.WithValue(context.Background(), instana.ContextAPIKey, instana.APIKey{ Key: apiKey, Prefix: \"apiToken\", }) tags, _, err := client.ApplicationCatalogApi.GetApplicationTagCatalog(auth) if err != nil { fmt.Fatalf(\"Error calling the API, aborting.\") } for _, tag := range tags { fmt.Printf(\"%s (%s): %s\\n\", tag.Category, tag.Type, tag.Name) } } ``` #### Java Follow the instructions provided in the official documentation from [OpenAPI Tools](https://github.com/OpenAPITools) to download the [openapi-generator-cli.jar](https://github.com/OpenAPITools/openapi-generator?tab=readme-ov-file#13---download-jar). Depending on your environment, use one of the following java http client implementations which will create a valid client for our OpenAPI specification: ``` //Nativ Java HTTP Client java -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g java -o pkg/instana/openapi --skip-validate-spec -p dateLibrary=java8 --library native //Spring WebClient java -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g java -o pkg/instana/openapi --skip-validate-spec -p dateLibrary=java8,hideGenerationTimestamp=true --library webclient //Spring RestTemplate java -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g java -o pkg/instana/openapi --skip-validate-spec -p dateLibrary=java8,hideGenerationTimestamp=true --library resttemplate ```
6
+ Documentation for INSTANA REST API
7
7
 
8
- The version of the OpenAPI document: 1.291.1002
8
+ The version of the OpenAPI document: 1.309.1268
9
9
  Contact: support@instana.com
10
10
  Generated by OpenAPI Generator (https://openapi-generator.tech)
11
11
 
@@ -3,9 +3,9 @@
3
3
  """
4
4
  Instana REST API documentation
5
5
 
6
- Searching for answers and best pratices? Check our [IBM Instana Community](https://community.ibm.com/community/user/aiops/communities/community-home?CommunityKey=58f324a3-3104-41be-9510-5b7c413cc48f). ## Overview The Instana REST API provides programmatic access to the Instana platform. It can be used to retrieve data available through the Instana UI Dashboard -- metrics, events, traces, etc -- and also to automate configuration tasks such as user management. ### Navigating the API documentation The API endpoints are grouped by product area and functionality. This generally maps to how our UI Dashboard is organized, hopefully making it easier to locate which endpoints you'd use to fetch the data you see visualized in our UI. The [UI sections](https://www.ibm.com/docs/en/instana-observability/current?topic=working-user-interface#navigation-menu) include: - Websites & Mobile Apps - Applications - Infrastructure - Synthetic Monitoring - Events - Automation - Service Levels - Settings - etc ### Rate Limiting A rate limit is applied to API usage. Up to 5,000 calls per hour can be made. How many remaining calls can be made and when this call limit resets, can inspected via three headers that are part of the responses of the API server. - **X-RateLimit-Limit:** Shows the maximum number of calls that may be executed per hour. - **X-RateLimit-Remaining:** How many calls may still be executed within the current hour. - **X-RateLimit-Reset:** Time when the remaining calls will be reset to the limit. For compatibility reasons with other rate limited APIs, this date is not the date in milliseconds, but instead in seconds since 1970-01-01T00:00:00+00:00. ### Further Reading We provide additional documentation for our REST API in our [product documentation](https://www.ibm.com/docs/en/instana-observability/current?topic=apis-web-rest-api). Here you'll also find some common queries for retrieving data and configuring Instana. ## Getting Started with the REST API ### API base URL The base URL for an specific instance of Instana can be determined using the tenant and unit information. - `base`: This is the base URL of a tenant unit, e.g. `https://test-example.instana.io`. This is the same URL that is used to access the Instana user interface. - `apiToken`: Requests against the Instana API require valid API tokens. An initial API token can be generated via the Instana user interface. Any additional API tokens can be generated via the API itself. ### Curl Example Here is an Example to use the REST API with Curl. First lets get all the available metrics with possible aggregations with a GET call. ```bash curl --request GET \\ --url https://test-instana.instana.io/api/application-monitoring/catalog/metrics \\ --header 'authorization: apiToken xxxxxxxxxxxxxxxx' ``` Next we can get every call grouped by the endpoint name that has an error count greater then zero. As a metric we could get the mean error rate for example. ```bash curl --request POST \\ --url https://test-instana.instana.io/api/application-monitoring/analyze/call-groups \\ --header 'authorization: apiToken xxxxxxxxxxxxxxxx' \\ --header 'content-type: application/json' \\ --data '{ \"group\":{ \"groupbyTag\":\"endpoint.name\" }, \"tagFilters\":[ { \"name\":\"call.error.count\", \"value\":\"0\", \"operator\":\"GREATER_THAN\" } ], \"metrics\":[ { \"metric\":\"errors\", \"aggregation\":\"MEAN\" } ] }' ``` ### Generating REST API clients The API is specified using the [OpenAPI v3](https://github.com/OAI/OpenAPI-Specification) (previously known as Swagger) format. You can download the current specification at our [GitHub API documentation](https://instana.github.io/openapi/openapi.yaml). OpenAPI tries to solve the issue of ever-evolving APIs and clients lagging behind. Please make sure that you always use the latest version of the generator, as a number of improvements are regularly made. To generate a client library for your language, you can use the [OpenAPI client generators](https://github.com/OpenAPITools/openapi-generator). #### Go For example, to generate a client library for Go to interact with our backend, you can use the following script; mind replacing the values of the `UNIT_NAME` and `TENANT_NAME` environment variables using those for your tenant unit: ```bash #!/bin/bash ### This script assumes you have the `java` and `wget` commands on the path export UNIT_NAME='myunit' # for example: prod export TENANT_NAME='mytenant' # for example: awesomecompany //Download the generator to your current working directory: wget https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/4.3.1/openapi-generator-cli-4.3.1.jar -O openapi-generator-cli.jar --server-variables \"tenant=${TENANT_NAME},unit=${UNIT_NAME}\" //generate a client library that you can vendor into your repository java -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g go \\ -o pkg/instana/openapi \\ --skip-validate-spec //(optional) format the Go code according to the Go code standard gofmt -s -w pkg/instana/openapi ``` The generated clients contain comprehensive READMEs, and you can start right away using the client from the example above: ```go import instana \"./pkg/instana/openapi\" // readTags will read all available application monitoring tags along with their type and category func readTags() { configuration := instana.NewConfiguration() configuration.Host = \"tenant-unit.instana.io\" configuration.BasePath = \"https://tenant-unit.instana.io\" client := instana.NewAPIClient(configuration) auth := context.WithValue(context.Background(), instana.ContextAPIKey, instana.APIKey{ Key: apiKey, Prefix: \"apiToken\", }) tags, _, err := client.ApplicationCatalogApi.GetApplicationTagCatalog(auth) if err != nil { fmt.Fatalf(\"Error calling the API, aborting.\") } for _, tag := range tags { fmt.Printf(\"%s (%s): %s\\n\", tag.Category, tag.Type, tag.Name) } } ``` #### Java Follow the instructions provided in the official documentation from [OpenAPI Tools](https://github.com/OpenAPITools) to download the [openapi-generator-cli.jar](https://github.com/OpenAPITools/openapi-generator?tab=readme-ov-file#13---download-jar). Depending on your environment, use one of the following java http client implementations which will create a valid client for our OpenAPI specification: ``` //Nativ Java HTTP Client java -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g java -o pkg/instana/openapi --skip-validate-spec -p dateLibrary=java8 --library native //Spring WebClient java -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g java -o pkg/instana/openapi --skip-validate-spec -p dateLibrary=java8,hideGenerationTimestamp=true --library webclient //Spring RestTemplate java -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g java -o pkg/instana/openapi --skip-validate-spec -p dateLibrary=java8,hideGenerationTimestamp=true --library resttemplate ```
6
+ Documentation for INSTANA REST API
7
7
 
8
- The version of the OpenAPI document: 1.291.1002
8
+ The version of the OpenAPI document: 1.309.1268
9
9
  Contact: support@instana.com
10
10
  Generated by OpenAPI Generator (https://openapi-generator.tech)
11
11
 
@@ -25,7 +25,7 @@ from typing_extensions import Self
25
25
 
26
26
  class Service(BaseModel):
27
27
  """
28
- Returns a list of Services.
28
+ Service
29
29
  """ # noqa: E501
30
30
  entity_type: Optional[StrictStr] = Field(default=None, description="Since, this is a Service, it will be of type `SERVICE`.", alias="entityType")
31
31
  id: StrictStr = Field(description="Unique ID of the Service. Eg: `3feb3dcd206c166ef2b41c707e0cd38d7cd325aa`.")
@@ -3,9 +3,9 @@
3
3
  """
4
4
  Instana REST API documentation
5
5
 
6
- Searching for answers and best pratices? Check our [IBM Instana Community](https://community.ibm.com/community/user/aiops/communities/community-home?CommunityKey=58f324a3-3104-41be-9510-5b7c413cc48f). ## Overview The Instana REST API provides programmatic access to the Instana platform. It can be used to retrieve data available through the Instana UI Dashboard -- metrics, events, traces, etc -- and also to automate configuration tasks such as user management. ### Navigating the API documentation The API endpoints are grouped by product area and functionality. This generally maps to how our UI Dashboard is organized, hopefully making it easier to locate which endpoints you'd use to fetch the data you see visualized in our UI. The [UI sections](https://www.ibm.com/docs/en/instana-observability/current?topic=working-user-interface#navigation-menu) include: - Websites & Mobile Apps - Applications - Infrastructure - Synthetic Monitoring - Events - Automation - Service Levels - Settings - etc ### Rate Limiting A rate limit is applied to API usage. Up to 5,000 calls per hour can be made. How many remaining calls can be made and when this call limit resets, can inspected via three headers that are part of the responses of the API server. - **X-RateLimit-Limit:** Shows the maximum number of calls that may be executed per hour. - **X-RateLimit-Remaining:** How many calls may still be executed within the current hour. - **X-RateLimit-Reset:** Time when the remaining calls will be reset to the limit. For compatibility reasons with other rate limited APIs, this date is not the date in milliseconds, but instead in seconds since 1970-01-01T00:00:00+00:00. ### Further Reading We provide additional documentation for our REST API in our [product documentation](https://www.ibm.com/docs/en/instana-observability/current?topic=apis-web-rest-api). Here you'll also find some common queries for retrieving data and configuring Instana. ## Getting Started with the REST API ### API base URL The base URL for an specific instance of Instana can be determined using the tenant and unit information. - `base`: This is the base URL of a tenant unit, e.g. `https://test-example.instana.io`. This is the same URL that is used to access the Instana user interface. - `apiToken`: Requests against the Instana API require valid API tokens. An initial API token can be generated via the Instana user interface. Any additional API tokens can be generated via the API itself. ### Curl Example Here is an Example to use the REST API with Curl. First lets get all the available metrics with possible aggregations with a GET call. ```bash curl --request GET \\ --url https://test-instana.instana.io/api/application-monitoring/catalog/metrics \\ --header 'authorization: apiToken xxxxxxxxxxxxxxxx' ``` Next we can get every call grouped by the endpoint name that has an error count greater then zero. As a metric we could get the mean error rate for example. ```bash curl --request POST \\ --url https://test-instana.instana.io/api/application-monitoring/analyze/call-groups \\ --header 'authorization: apiToken xxxxxxxxxxxxxxxx' \\ --header 'content-type: application/json' \\ --data '{ \"group\":{ \"groupbyTag\":\"endpoint.name\" }, \"tagFilters\":[ { \"name\":\"call.error.count\", \"value\":\"0\", \"operator\":\"GREATER_THAN\" } ], \"metrics\":[ { \"metric\":\"errors\", \"aggregation\":\"MEAN\" } ] }' ``` ### Generating REST API clients The API is specified using the [OpenAPI v3](https://github.com/OAI/OpenAPI-Specification) (previously known as Swagger) format. You can download the current specification at our [GitHub API documentation](https://instana.github.io/openapi/openapi.yaml). OpenAPI tries to solve the issue of ever-evolving APIs and clients lagging behind. Please make sure that you always use the latest version of the generator, as a number of improvements are regularly made. To generate a client library for your language, you can use the [OpenAPI client generators](https://github.com/OpenAPITools/openapi-generator). #### Go For example, to generate a client library for Go to interact with our backend, you can use the following script; mind replacing the values of the `UNIT_NAME` and `TENANT_NAME` environment variables using those for your tenant unit: ```bash #!/bin/bash ### This script assumes you have the `java` and `wget` commands on the path export UNIT_NAME='myunit' # for example: prod export TENANT_NAME='mytenant' # for example: awesomecompany //Download the generator to your current working directory: wget https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/4.3.1/openapi-generator-cli-4.3.1.jar -O openapi-generator-cli.jar --server-variables \"tenant=${TENANT_NAME},unit=${UNIT_NAME}\" //generate a client library that you can vendor into your repository java -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g go \\ -o pkg/instana/openapi \\ --skip-validate-spec //(optional) format the Go code according to the Go code standard gofmt -s -w pkg/instana/openapi ``` The generated clients contain comprehensive READMEs, and you can start right away using the client from the example above: ```go import instana \"./pkg/instana/openapi\" // readTags will read all available application monitoring tags along with their type and category func readTags() { configuration := instana.NewConfiguration() configuration.Host = \"tenant-unit.instana.io\" configuration.BasePath = \"https://tenant-unit.instana.io\" client := instana.NewAPIClient(configuration) auth := context.WithValue(context.Background(), instana.ContextAPIKey, instana.APIKey{ Key: apiKey, Prefix: \"apiToken\", }) tags, _, err := client.ApplicationCatalogApi.GetApplicationTagCatalog(auth) if err != nil { fmt.Fatalf(\"Error calling the API, aborting.\") } for _, tag := range tags { fmt.Printf(\"%s (%s): %s\\n\", tag.Category, tag.Type, tag.Name) } } ``` #### Java Follow the instructions provided in the official documentation from [OpenAPI Tools](https://github.com/OpenAPITools) to download the [openapi-generator-cli.jar](https://github.com/OpenAPITools/openapi-generator?tab=readme-ov-file#13---download-jar). Depending on your environment, use one of the following java http client implementations which will create a valid client for our OpenAPI specification: ``` //Nativ Java HTTP Client java -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g java -o pkg/instana/openapi --skip-validate-spec -p dateLibrary=java8 --library native //Spring WebClient java -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g java -o pkg/instana/openapi --skip-validate-spec -p dateLibrary=java8,hideGenerationTimestamp=true --library webclient //Spring RestTemplate java -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g java -o pkg/instana/openapi --skip-validate-spec -p dateLibrary=java8,hideGenerationTimestamp=true --library resttemplate ```
6
+ Documentation for INSTANA REST API
7
7
 
8
- The version of the OpenAPI document: 1.291.1002
8
+ The version of the OpenAPI document: 1.309.1268
9
9
  Contact: support@instana.com
10
10
  Generated by OpenAPI Generator (https://openapi-generator.tech)
11
11
 
@@ -3,9 +3,9 @@
3
3
  """
4
4
  Instana REST API documentation
5
5
 
6
- Searching for answers and best pratices? Check our [IBM Instana Community](https://community.ibm.com/community/user/aiops/communities/community-home?CommunityKey=58f324a3-3104-41be-9510-5b7c413cc48f). ## Overview The Instana REST API provides programmatic access to the Instana platform. It can be used to retrieve data available through the Instana UI Dashboard -- metrics, events, traces, etc -- and also to automate configuration tasks such as user management. ### Navigating the API documentation The API endpoints are grouped by product area and functionality. This generally maps to how our UI Dashboard is organized, hopefully making it easier to locate which endpoints you'd use to fetch the data you see visualized in our UI. The [UI sections](https://www.ibm.com/docs/en/instana-observability/current?topic=working-user-interface#navigation-menu) include: - Websites & Mobile Apps - Applications - Infrastructure - Synthetic Monitoring - Events - Automation - Service Levels - Settings - etc ### Rate Limiting A rate limit is applied to API usage. Up to 5,000 calls per hour can be made. How many remaining calls can be made and when this call limit resets, can inspected via three headers that are part of the responses of the API server. - **X-RateLimit-Limit:** Shows the maximum number of calls that may be executed per hour. - **X-RateLimit-Remaining:** How many calls may still be executed within the current hour. - **X-RateLimit-Reset:** Time when the remaining calls will be reset to the limit. For compatibility reasons with other rate limited APIs, this date is not the date in milliseconds, but instead in seconds since 1970-01-01T00:00:00+00:00. ### Further Reading We provide additional documentation for our REST API in our [product documentation](https://www.ibm.com/docs/en/instana-observability/current?topic=apis-web-rest-api). Here you'll also find some common queries for retrieving data and configuring Instana. ## Getting Started with the REST API ### API base URL The base URL for an specific instance of Instana can be determined using the tenant and unit information. - `base`: This is the base URL of a tenant unit, e.g. `https://test-example.instana.io`. This is the same URL that is used to access the Instana user interface. - `apiToken`: Requests against the Instana API require valid API tokens. An initial API token can be generated via the Instana user interface. Any additional API tokens can be generated via the API itself. ### Curl Example Here is an Example to use the REST API with Curl. First lets get all the available metrics with possible aggregations with a GET call. ```bash curl --request GET \\ --url https://test-instana.instana.io/api/application-monitoring/catalog/metrics \\ --header 'authorization: apiToken xxxxxxxxxxxxxxxx' ``` Next we can get every call grouped by the endpoint name that has an error count greater then zero. As a metric we could get the mean error rate for example. ```bash curl --request POST \\ --url https://test-instana.instana.io/api/application-monitoring/analyze/call-groups \\ --header 'authorization: apiToken xxxxxxxxxxxxxxxx' \\ --header 'content-type: application/json' \\ --data '{ \"group\":{ \"groupbyTag\":\"endpoint.name\" }, \"tagFilters\":[ { \"name\":\"call.error.count\", \"value\":\"0\", \"operator\":\"GREATER_THAN\" } ], \"metrics\":[ { \"metric\":\"errors\", \"aggregation\":\"MEAN\" } ] }' ``` ### Generating REST API clients The API is specified using the [OpenAPI v3](https://github.com/OAI/OpenAPI-Specification) (previously known as Swagger) format. You can download the current specification at our [GitHub API documentation](https://instana.github.io/openapi/openapi.yaml). OpenAPI tries to solve the issue of ever-evolving APIs and clients lagging behind. Please make sure that you always use the latest version of the generator, as a number of improvements are regularly made. To generate a client library for your language, you can use the [OpenAPI client generators](https://github.com/OpenAPITools/openapi-generator). #### Go For example, to generate a client library for Go to interact with our backend, you can use the following script; mind replacing the values of the `UNIT_NAME` and `TENANT_NAME` environment variables using those for your tenant unit: ```bash #!/bin/bash ### This script assumes you have the `java` and `wget` commands on the path export UNIT_NAME='myunit' # for example: prod export TENANT_NAME='mytenant' # for example: awesomecompany //Download the generator to your current working directory: wget https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/4.3.1/openapi-generator-cli-4.3.1.jar -O openapi-generator-cli.jar --server-variables \"tenant=${TENANT_NAME},unit=${UNIT_NAME}\" //generate a client library that you can vendor into your repository java -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g go \\ -o pkg/instana/openapi \\ --skip-validate-spec //(optional) format the Go code according to the Go code standard gofmt -s -w pkg/instana/openapi ``` The generated clients contain comprehensive READMEs, and you can start right away using the client from the example above: ```go import instana \"./pkg/instana/openapi\" // readTags will read all available application monitoring tags along with their type and category func readTags() { configuration := instana.NewConfiguration() configuration.Host = \"tenant-unit.instana.io\" configuration.BasePath = \"https://tenant-unit.instana.io\" client := instana.NewAPIClient(configuration) auth := context.WithValue(context.Background(), instana.ContextAPIKey, instana.APIKey{ Key: apiKey, Prefix: \"apiToken\", }) tags, _, err := client.ApplicationCatalogApi.GetApplicationTagCatalog(auth) if err != nil { fmt.Fatalf(\"Error calling the API, aborting.\") } for _, tag := range tags { fmt.Printf(\"%s (%s): %s\\n\", tag.Category, tag.Type, tag.Name) } } ``` #### Java Follow the instructions provided in the official documentation from [OpenAPI Tools](https://github.com/OpenAPITools) to download the [openapi-generator-cli.jar](https://github.com/OpenAPITools/openapi-generator?tab=readme-ov-file#13---download-jar). Depending on your environment, use one of the following java http client implementations which will create a valid client for our OpenAPI specification: ``` //Nativ Java HTTP Client java -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g java -o pkg/instana/openapi --skip-validate-spec -p dateLibrary=java8 --library native //Spring WebClient java -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g java -o pkg/instana/openapi --skip-validate-spec -p dateLibrary=java8,hideGenerationTimestamp=true --library webclient //Spring RestTemplate java -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g java -o pkg/instana/openapi --skip-validate-spec -p dateLibrary=java8,hideGenerationTimestamp=true --library resttemplate ```
6
+ Documentation for INSTANA REST API
7
7
 
8
- The version of the OpenAPI document: 1.291.1002
8
+ The version of the OpenAPI document: 1.309.1268
9
9
  Contact: support@instana.com
10
10
  Generated by OpenAPI Generator (https://openapi-generator.tech)
11
11
 
@@ -28,10 +28,9 @@ class ServiceEventResult(EventResult):
28
28
  """
29
29
  ServiceEventResult
30
30
  """ # noqa: E501
31
- application_id: Optional[StrictStr] = Field(default=None, alias="applicationId")
32
- probable_root_cause: Optional[Dict[str, Dict[str, Any]]] = Field(default=None, alias="probableRootCause")
33
- service_id: Optional[StrictStr] = Field(default=None, alias="serviceId")
34
- __properties: ClassVar[List[str]] = ["detail", "end", "entityLabel", "entityName", "entityType", "eventId", "eventSpecificationId", "fixSuggestion", "metrics", "probableCause", "problem", "recentEvents", "severity", "snapshotId", "start", "state", "type", "applicationId", "probableRootCause", "serviceId"]
31
+ application_id: Optional[StrictStr] = Field(default=None, description="ID of the application this service is in scope of.", alias="applicationId")
32
+ service_id: Optional[StrictStr] = Field(default=None, description="ID of the service.", alias="serviceId")
33
+ __properties: ClassVar[List[str]] = ["detail", "end", "entityLabel", "entityName", "entityType", "eventId", "eventSpecificationId", "fixSuggestion", "metrics", "probableCause", "problem", "recentEvents", "severity", "shortCode", "snapshotId", "start", "state", "type", "applicationId", "serviceId"]
35
34
 
36
35
  model_config = ConfigDict(
37
36
  populate_by_name=True,
@@ -97,12 +96,12 @@ class ServiceEventResult(EventResult):
97
96
  "problem": obj.get("problem"),
98
97
  "recentEvents": obj.get("recentEvents"),
99
98
  "severity": obj.get("severity"),
99
+ "shortCode": obj.get("shortCode"),
100
100
  "snapshotId": obj.get("snapshotId"),
101
101
  "start": obj.get("start"),
102
102
  "state": obj.get("state"),
103
103
  "type": obj.get("type"),
104
104
  "applicationId": obj.get("applicationId"),
105
- "probableRootCause": obj.get("probableRootCause"),
106
105
  "serviceId": obj.get("serviceId")
107
106
  })
108
107
  return _obj
@@ -3,9 +3,9 @@
3
3
  """
4
4
  Instana REST API documentation
5
5
 
6
- Searching for answers and best pratices? Check our [IBM Instana Community](https://community.ibm.com/community/user/aiops/communities/community-home?CommunityKey=58f324a3-3104-41be-9510-5b7c413cc48f). ## Overview The Instana REST API provides programmatic access to the Instana platform. It can be used to retrieve data available through the Instana UI Dashboard -- metrics, events, traces, etc -- and also to automate configuration tasks such as user management. ### Navigating the API documentation The API endpoints are grouped by product area and functionality. This generally maps to how our UI Dashboard is organized, hopefully making it easier to locate which endpoints you'd use to fetch the data you see visualized in our UI. The [UI sections](https://www.ibm.com/docs/en/instana-observability/current?topic=working-user-interface#navigation-menu) include: - Websites & Mobile Apps - Applications - Infrastructure - Synthetic Monitoring - Events - Automation - Service Levels - Settings - etc ### Rate Limiting A rate limit is applied to API usage. Up to 5,000 calls per hour can be made. How many remaining calls can be made and when this call limit resets, can inspected via three headers that are part of the responses of the API server. - **X-RateLimit-Limit:** Shows the maximum number of calls that may be executed per hour. - **X-RateLimit-Remaining:** How many calls may still be executed within the current hour. - **X-RateLimit-Reset:** Time when the remaining calls will be reset to the limit. For compatibility reasons with other rate limited APIs, this date is not the date in milliseconds, but instead in seconds since 1970-01-01T00:00:00+00:00. ### Further Reading We provide additional documentation for our REST API in our [product documentation](https://www.ibm.com/docs/en/instana-observability/current?topic=apis-web-rest-api). Here you'll also find some common queries for retrieving data and configuring Instana. ## Getting Started with the REST API ### API base URL The base URL for an specific instance of Instana can be determined using the tenant and unit information. - `base`: This is the base URL of a tenant unit, e.g. `https://test-example.instana.io`. This is the same URL that is used to access the Instana user interface. - `apiToken`: Requests against the Instana API require valid API tokens. An initial API token can be generated via the Instana user interface. Any additional API tokens can be generated via the API itself. ### Curl Example Here is an Example to use the REST API with Curl. First lets get all the available metrics with possible aggregations with a GET call. ```bash curl --request GET \\ --url https://test-instana.instana.io/api/application-monitoring/catalog/metrics \\ --header 'authorization: apiToken xxxxxxxxxxxxxxxx' ``` Next we can get every call grouped by the endpoint name that has an error count greater then zero. As a metric we could get the mean error rate for example. ```bash curl --request POST \\ --url https://test-instana.instana.io/api/application-monitoring/analyze/call-groups \\ --header 'authorization: apiToken xxxxxxxxxxxxxxxx' \\ --header 'content-type: application/json' \\ --data '{ \"group\":{ \"groupbyTag\":\"endpoint.name\" }, \"tagFilters\":[ { \"name\":\"call.error.count\", \"value\":\"0\", \"operator\":\"GREATER_THAN\" } ], \"metrics\":[ { \"metric\":\"errors\", \"aggregation\":\"MEAN\" } ] }' ``` ### Generating REST API clients The API is specified using the [OpenAPI v3](https://github.com/OAI/OpenAPI-Specification) (previously known as Swagger) format. You can download the current specification at our [GitHub API documentation](https://instana.github.io/openapi/openapi.yaml). OpenAPI tries to solve the issue of ever-evolving APIs and clients lagging behind. Please make sure that you always use the latest version of the generator, as a number of improvements are regularly made. To generate a client library for your language, you can use the [OpenAPI client generators](https://github.com/OpenAPITools/openapi-generator). #### Go For example, to generate a client library for Go to interact with our backend, you can use the following script; mind replacing the values of the `UNIT_NAME` and `TENANT_NAME` environment variables using those for your tenant unit: ```bash #!/bin/bash ### This script assumes you have the `java` and `wget` commands on the path export UNIT_NAME='myunit' # for example: prod export TENANT_NAME='mytenant' # for example: awesomecompany //Download the generator to your current working directory: wget https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/4.3.1/openapi-generator-cli-4.3.1.jar -O openapi-generator-cli.jar --server-variables \"tenant=${TENANT_NAME},unit=${UNIT_NAME}\" //generate a client library that you can vendor into your repository java -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g go \\ -o pkg/instana/openapi \\ --skip-validate-spec //(optional) format the Go code according to the Go code standard gofmt -s -w pkg/instana/openapi ``` The generated clients contain comprehensive READMEs, and you can start right away using the client from the example above: ```go import instana \"./pkg/instana/openapi\" // readTags will read all available application monitoring tags along with their type and category func readTags() { configuration := instana.NewConfiguration() configuration.Host = \"tenant-unit.instana.io\" configuration.BasePath = \"https://tenant-unit.instana.io\" client := instana.NewAPIClient(configuration) auth := context.WithValue(context.Background(), instana.ContextAPIKey, instana.APIKey{ Key: apiKey, Prefix: \"apiToken\", }) tags, _, err := client.ApplicationCatalogApi.GetApplicationTagCatalog(auth) if err != nil { fmt.Fatalf(\"Error calling the API, aborting.\") } for _, tag := range tags { fmt.Printf(\"%s (%s): %s\\n\", tag.Category, tag.Type, tag.Name) } } ``` #### Java Follow the instructions provided in the official documentation from [OpenAPI Tools](https://github.com/OpenAPITools) to download the [openapi-generator-cli.jar](https://github.com/OpenAPITools/openapi-generator?tab=readme-ov-file#13---download-jar). Depending on your environment, use one of the following java http client implementations which will create a valid client for our OpenAPI specification: ``` //Nativ Java HTTP Client java -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g java -o pkg/instana/openapi --skip-validate-spec -p dateLibrary=java8 --library native //Spring WebClient java -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g java -o pkg/instana/openapi --skip-validate-spec -p dateLibrary=java8,hideGenerationTimestamp=true --library webclient //Spring RestTemplate java -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g java -o pkg/instana/openapi --skip-validate-spec -p dateLibrary=java8,hideGenerationTimestamp=true --library resttemplate ```
6
+ Documentation for INSTANA REST API
7
7
 
8
- The version of the OpenAPI document: 1.291.1002
8
+ The version of the OpenAPI document: 1.309.1268
9
9
  Contact: support@instana.com
10
10
  Generated by OpenAPI Generator (https://openapi-generator.tech)
11
11
 
@@ -3,9 +3,9 @@
3
3
  """
4
4
  Instana REST API documentation
5
5
 
6
- Searching for answers and best pratices? Check our [IBM Instana Community](https://community.ibm.com/community/user/aiops/communities/community-home?CommunityKey=58f324a3-3104-41be-9510-5b7c413cc48f). ## Overview The Instana REST API provides programmatic access to the Instana platform. It can be used to retrieve data available through the Instana UI Dashboard -- metrics, events, traces, etc -- and also to automate configuration tasks such as user management. ### Navigating the API documentation The API endpoints are grouped by product area and functionality. This generally maps to how our UI Dashboard is organized, hopefully making it easier to locate which endpoints you'd use to fetch the data you see visualized in our UI. The [UI sections](https://www.ibm.com/docs/en/instana-observability/current?topic=working-user-interface#navigation-menu) include: - Websites & Mobile Apps - Applications - Infrastructure - Synthetic Monitoring - Events - Automation - Service Levels - Settings - etc ### Rate Limiting A rate limit is applied to API usage. Up to 5,000 calls per hour can be made. How many remaining calls can be made and when this call limit resets, can inspected via three headers that are part of the responses of the API server. - **X-RateLimit-Limit:** Shows the maximum number of calls that may be executed per hour. - **X-RateLimit-Remaining:** How many calls may still be executed within the current hour. - **X-RateLimit-Reset:** Time when the remaining calls will be reset to the limit. For compatibility reasons with other rate limited APIs, this date is not the date in milliseconds, but instead in seconds since 1970-01-01T00:00:00+00:00. ### Further Reading We provide additional documentation for our REST API in our [product documentation](https://www.ibm.com/docs/en/instana-observability/current?topic=apis-web-rest-api). Here you'll also find some common queries for retrieving data and configuring Instana. ## Getting Started with the REST API ### API base URL The base URL for an specific instance of Instana can be determined using the tenant and unit information. - `base`: This is the base URL of a tenant unit, e.g. `https://test-example.instana.io`. This is the same URL that is used to access the Instana user interface. - `apiToken`: Requests against the Instana API require valid API tokens. An initial API token can be generated via the Instana user interface. Any additional API tokens can be generated via the API itself. ### Curl Example Here is an Example to use the REST API with Curl. First lets get all the available metrics with possible aggregations with a GET call. ```bash curl --request GET \\ --url https://test-instana.instana.io/api/application-monitoring/catalog/metrics \\ --header 'authorization: apiToken xxxxxxxxxxxxxxxx' ``` Next we can get every call grouped by the endpoint name that has an error count greater then zero. As a metric we could get the mean error rate for example. ```bash curl --request POST \\ --url https://test-instana.instana.io/api/application-monitoring/analyze/call-groups \\ --header 'authorization: apiToken xxxxxxxxxxxxxxxx' \\ --header 'content-type: application/json' \\ --data '{ \"group\":{ \"groupbyTag\":\"endpoint.name\" }, \"tagFilters\":[ { \"name\":\"call.error.count\", \"value\":\"0\", \"operator\":\"GREATER_THAN\" } ], \"metrics\":[ { \"metric\":\"errors\", \"aggregation\":\"MEAN\" } ] }' ``` ### Generating REST API clients The API is specified using the [OpenAPI v3](https://github.com/OAI/OpenAPI-Specification) (previously known as Swagger) format. You can download the current specification at our [GitHub API documentation](https://instana.github.io/openapi/openapi.yaml). OpenAPI tries to solve the issue of ever-evolving APIs and clients lagging behind. Please make sure that you always use the latest version of the generator, as a number of improvements are regularly made. To generate a client library for your language, you can use the [OpenAPI client generators](https://github.com/OpenAPITools/openapi-generator). #### Go For example, to generate a client library for Go to interact with our backend, you can use the following script; mind replacing the values of the `UNIT_NAME` and `TENANT_NAME` environment variables using those for your tenant unit: ```bash #!/bin/bash ### This script assumes you have the `java` and `wget` commands on the path export UNIT_NAME='myunit' # for example: prod export TENANT_NAME='mytenant' # for example: awesomecompany //Download the generator to your current working directory: wget https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/4.3.1/openapi-generator-cli-4.3.1.jar -O openapi-generator-cli.jar --server-variables \"tenant=${TENANT_NAME},unit=${UNIT_NAME}\" //generate a client library that you can vendor into your repository java -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g go \\ -o pkg/instana/openapi \\ --skip-validate-spec //(optional) format the Go code according to the Go code standard gofmt -s -w pkg/instana/openapi ``` The generated clients contain comprehensive READMEs, and you can start right away using the client from the example above: ```go import instana \"./pkg/instana/openapi\" // readTags will read all available application monitoring tags along with their type and category func readTags() { configuration := instana.NewConfiguration() configuration.Host = \"tenant-unit.instana.io\" configuration.BasePath = \"https://tenant-unit.instana.io\" client := instana.NewAPIClient(configuration) auth := context.WithValue(context.Background(), instana.ContextAPIKey, instana.APIKey{ Key: apiKey, Prefix: \"apiToken\", }) tags, _, err := client.ApplicationCatalogApi.GetApplicationTagCatalog(auth) if err != nil { fmt.Fatalf(\"Error calling the API, aborting.\") } for _, tag := range tags { fmt.Printf(\"%s (%s): %s\\n\", tag.Category, tag.Type, tag.Name) } } ``` #### Java Follow the instructions provided in the official documentation from [OpenAPI Tools](https://github.com/OpenAPITools) to download the [openapi-generator-cli.jar](https://github.com/OpenAPITools/openapi-generator?tab=readme-ov-file#13---download-jar). Depending on your environment, use one of the following java http client implementations which will create a valid client for our OpenAPI specification: ``` //Nativ Java HTTP Client java -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g java -o pkg/instana/openapi --skip-validate-spec -p dateLibrary=java8 --library native //Spring WebClient java -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g java -o pkg/instana/openapi --skip-validate-spec -p dateLibrary=java8,hideGenerationTimestamp=true --library webclient //Spring RestTemplate java -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g java -o pkg/instana/openapi --skip-validate-spec -p dateLibrary=java8,hideGenerationTimestamp=true --library resttemplate ```
6
+ Documentation for INSTANA REST API
7
7
 
8
- The version of the OpenAPI document: 1.291.1002
8
+ The version of the OpenAPI document: 1.309.1268
9
9
  Contact: support@instana.com
10
10
  Generated by OpenAPI Generator (https://openapi-generator.tech)
11
11
 
@@ -29,6 +29,7 @@ if TYPE_CHECKING:
29
29
  from instana_client.models.availability_blueprint_indicator import AvailabilityBlueprintIndicator
30
30
  from instana_client.models.custom_blueprint_indicator import CustomBlueprintIndicator
31
31
  from instana_client.models.latency_blueprint_indicator import LatencyBlueprintIndicator
32
+ from instana_client.models.saturation_blueprint_indicator import SaturationBlueprintIndicator
32
33
  from instana_client.models.traffic_blueprint_indicator import TrafficBlueprintIndicator
33
34
 
34
35
  class ServiceLevelIndicator(BaseModel):
@@ -59,8 +60,8 @@ class ServiceLevelIndicator(BaseModel):
59
60
  if value is None:
60
61
  return value
61
62
 
62
- if value not in set(['latency', 'availability', 'traffic', 'custom']):
63
- raise ValueError("must be one of enum values ('latency', 'availability', 'traffic', 'custom')")
63
+ if value not in set(['latency', 'availability', 'traffic', 'saturation', 'custom']):
64
+ raise ValueError("must be one of enum values ('latency', 'availability', 'traffic', 'saturation', 'custom')")
64
65
  return value
65
66
 
66
67
  @field_validator('operator')
@@ -105,7 +106,7 @@ class ServiceLevelIndicator(BaseModel):
105
106
 
106
107
  # discriminator mappings
107
108
  __discriminator_value_class_map: ClassVar[Dict[str, str]] = {
108
- 'availability': 'AvailabilityBlueprintIndicator','custom': 'CustomBlueprintIndicator','latency': 'LatencyBlueprintIndicator','traffic': 'TrafficBlueprintIndicator'
109
+ 'availability': 'AvailabilityBlueprintIndicator','custom': 'CustomBlueprintIndicator','latency': 'LatencyBlueprintIndicator','saturation': 'SaturationBlueprintIndicator','traffic': 'TrafficBlueprintIndicator'
109
110
  }
110
111
 
111
112
  @classmethod
@@ -127,7 +128,7 @@ class ServiceLevelIndicator(BaseModel):
127
128
  return json.dumps(self.to_dict())
128
129
 
129
130
  @classmethod
130
- def from_json(cls, json_str: str) -> Optional[Union[AvailabilityBlueprintIndicator, CustomBlueprintIndicator, LatencyBlueprintIndicator, TrafficBlueprintIndicator]]:
131
+ def from_json(cls, json_str: str) -> Optional[Union[AvailabilityBlueprintIndicator, CustomBlueprintIndicator, LatencyBlueprintIndicator, SaturationBlueprintIndicator, TrafficBlueprintIndicator]]:
131
132
  """Create an instance of ServiceLevelIndicator from a JSON string"""
132
133
  return cls.from_dict(json.loads(json_str))
133
134
 
@@ -152,7 +153,7 @@ class ServiceLevelIndicator(BaseModel):
152
153
  return _dict
153
154
 
154
155
  @classmethod
155
- def from_dict(cls, obj: Dict[str, Any]) -> Optional[Union[AvailabilityBlueprintIndicator, CustomBlueprintIndicator, LatencyBlueprintIndicator, TrafficBlueprintIndicator]]:
156
+ def from_dict(cls, obj: Dict[str, Any]) -> Optional[Union[AvailabilityBlueprintIndicator, CustomBlueprintIndicator, LatencyBlueprintIndicator, SaturationBlueprintIndicator, TrafficBlueprintIndicator]]:
156
157
  """Create an instance of ServiceLevelIndicator from a dict"""
157
158
  # look up the object type based on discriminator mapping
158
159
  object_type = cls.get_discriminator_value(obj)
@@ -162,6 +163,8 @@ class ServiceLevelIndicator(BaseModel):
162
163
  return import_module("instana_client.models.custom_blueprint_indicator").CustomBlueprintIndicator.from_dict(obj)
163
164
  if object_type == 'LatencyBlueprintIndicator':
164
165
  return import_module("instana_client.models.latency_blueprint_indicator").LatencyBlueprintIndicator.from_dict(obj)
166
+ if object_type == 'SaturationBlueprintIndicator':
167
+ return import_module("instana_client.models.saturation_blueprint_indicator").SaturationBlueprintIndicator.from_dict(obj)
165
168
  if object_type == 'TrafficBlueprintIndicator':
166
169
  return import_module("instana_client.models.traffic_blueprint_indicator").TrafficBlueprintIndicator.from_dict(obj)
167
170
 
@@ -3,9 +3,9 @@
3
3
  """
4
4
  Instana REST API documentation
5
5
 
6
- Searching for answers and best pratices? Check our [IBM Instana Community](https://community.ibm.com/community/user/aiops/communities/community-home?CommunityKey=58f324a3-3104-41be-9510-5b7c413cc48f). ## Overview The Instana REST API provides programmatic access to the Instana platform. It can be used to retrieve data available through the Instana UI Dashboard -- metrics, events, traces, etc -- and also to automate configuration tasks such as user management. ### Navigating the API documentation The API endpoints are grouped by product area and functionality. This generally maps to how our UI Dashboard is organized, hopefully making it easier to locate which endpoints you'd use to fetch the data you see visualized in our UI. The [UI sections](https://www.ibm.com/docs/en/instana-observability/current?topic=working-user-interface#navigation-menu) include: - Websites & Mobile Apps - Applications - Infrastructure - Synthetic Monitoring - Events - Automation - Service Levels - Settings - etc ### Rate Limiting A rate limit is applied to API usage. Up to 5,000 calls per hour can be made. How many remaining calls can be made and when this call limit resets, can inspected via three headers that are part of the responses of the API server. - **X-RateLimit-Limit:** Shows the maximum number of calls that may be executed per hour. - **X-RateLimit-Remaining:** How many calls may still be executed within the current hour. - **X-RateLimit-Reset:** Time when the remaining calls will be reset to the limit. For compatibility reasons with other rate limited APIs, this date is not the date in milliseconds, but instead in seconds since 1970-01-01T00:00:00+00:00. ### Further Reading We provide additional documentation for our REST API in our [product documentation](https://www.ibm.com/docs/en/instana-observability/current?topic=apis-web-rest-api). Here you'll also find some common queries for retrieving data and configuring Instana. ## Getting Started with the REST API ### API base URL The base URL for an specific instance of Instana can be determined using the tenant and unit information. - `base`: This is the base URL of a tenant unit, e.g. `https://test-example.instana.io`. This is the same URL that is used to access the Instana user interface. - `apiToken`: Requests against the Instana API require valid API tokens. An initial API token can be generated via the Instana user interface. Any additional API tokens can be generated via the API itself. ### Curl Example Here is an Example to use the REST API with Curl. First lets get all the available metrics with possible aggregations with a GET call. ```bash curl --request GET \\ --url https://test-instana.instana.io/api/application-monitoring/catalog/metrics \\ --header 'authorization: apiToken xxxxxxxxxxxxxxxx' ``` Next we can get every call grouped by the endpoint name that has an error count greater then zero. As a metric we could get the mean error rate for example. ```bash curl --request POST \\ --url https://test-instana.instana.io/api/application-monitoring/analyze/call-groups \\ --header 'authorization: apiToken xxxxxxxxxxxxxxxx' \\ --header 'content-type: application/json' \\ --data '{ \"group\":{ \"groupbyTag\":\"endpoint.name\" }, \"tagFilters\":[ { \"name\":\"call.error.count\", \"value\":\"0\", \"operator\":\"GREATER_THAN\" } ], \"metrics\":[ { \"metric\":\"errors\", \"aggregation\":\"MEAN\" } ] }' ``` ### Generating REST API clients The API is specified using the [OpenAPI v3](https://github.com/OAI/OpenAPI-Specification) (previously known as Swagger) format. You can download the current specification at our [GitHub API documentation](https://instana.github.io/openapi/openapi.yaml). OpenAPI tries to solve the issue of ever-evolving APIs and clients lagging behind. Please make sure that you always use the latest version of the generator, as a number of improvements are regularly made. To generate a client library for your language, you can use the [OpenAPI client generators](https://github.com/OpenAPITools/openapi-generator). #### Go For example, to generate a client library for Go to interact with our backend, you can use the following script; mind replacing the values of the `UNIT_NAME` and `TENANT_NAME` environment variables using those for your tenant unit: ```bash #!/bin/bash ### This script assumes you have the `java` and `wget` commands on the path export UNIT_NAME='myunit' # for example: prod export TENANT_NAME='mytenant' # for example: awesomecompany //Download the generator to your current working directory: wget https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/4.3.1/openapi-generator-cli-4.3.1.jar -O openapi-generator-cli.jar --server-variables \"tenant=${TENANT_NAME},unit=${UNIT_NAME}\" //generate a client library that you can vendor into your repository java -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g go \\ -o pkg/instana/openapi \\ --skip-validate-spec //(optional) format the Go code according to the Go code standard gofmt -s -w pkg/instana/openapi ``` The generated clients contain comprehensive READMEs, and you can start right away using the client from the example above: ```go import instana \"./pkg/instana/openapi\" // readTags will read all available application monitoring tags along with their type and category func readTags() { configuration := instana.NewConfiguration() configuration.Host = \"tenant-unit.instana.io\" configuration.BasePath = \"https://tenant-unit.instana.io\" client := instana.NewAPIClient(configuration) auth := context.WithValue(context.Background(), instana.ContextAPIKey, instana.APIKey{ Key: apiKey, Prefix: \"apiToken\", }) tags, _, err := client.ApplicationCatalogApi.GetApplicationTagCatalog(auth) if err != nil { fmt.Fatalf(\"Error calling the API, aborting.\") } for _, tag := range tags { fmt.Printf(\"%s (%s): %s\\n\", tag.Category, tag.Type, tag.Name) } } ``` #### Java Follow the instructions provided in the official documentation from [OpenAPI Tools](https://github.com/OpenAPITools) to download the [openapi-generator-cli.jar](https://github.com/OpenAPITools/openapi-generator?tab=readme-ov-file#13---download-jar). Depending on your environment, use one of the following java http client implementations which will create a valid client for our OpenAPI specification: ``` //Nativ Java HTTP Client java -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g java -o pkg/instana/openapi --skip-validate-spec -p dateLibrary=java8 --library native //Spring WebClient java -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g java -o pkg/instana/openapi --skip-validate-spec -p dateLibrary=java8,hideGenerationTimestamp=true --library webclient //Spring RestTemplate java -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g java -o pkg/instana/openapi --skip-validate-spec -p dateLibrary=java8,hideGenerationTimestamp=true --library resttemplate ```
6
+ Documentation for INSTANA REST API
7
7
 
8
- The version of the OpenAPI document: 1.291.1002
8
+ The version of the OpenAPI document: 1.309.1268
9
9
  Contact: support@instana.com
10
10
  Generated by OpenAPI Generator (https://openapi-generator.tech)
11
11
 
@@ -3,9 +3,9 @@
3
3
  """
4
4
  Instana REST API documentation
5
5
 
6
- Searching for answers and best pratices? Check our [IBM Instana Community](https://community.ibm.com/community/user/aiops/communities/community-home?CommunityKey=58f324a3-3104-41be-9510-5b7c413cc48f). ## Overview The Instana REST API provides programmatic access to the Instana platform. It can be used to retrieve data available through the Instana UI Dashboard -- metrics, events, traces, etc -- and also to automate configuration tasks such as user management. ### Navigating the API documentation The API endpoints are grouped by product area and functionality. This generally maps to how our UI Dashboard is organized, hopefully making it easier to locate which endpoints you'd use to fetch the data you see visualized in our UI. The [UI sections](https://www.ibm.com/docs/en/instana-observability/current?topic=working-user-interface#navigation-menu) include: - Websites & Mobile Apps - Applications - Infrastructure - Synthetic Monitoring - Events - Automation - Service Levels - Settings - etc ### Rate Limiting A rate limit is applied to API usage. Up to 5,000 calls per hour can be made. How many remaining calls can be made and when this call limit resets, can inspected via three headers that are part of the responses of the API server. - **X-RateLimit-Limit:** Shows the maximum number of calls that may be executed per hour. - **X-RateLimit-Remaining:** How many calls may still be executed within the current hour. - **X-RateLimit-Reset:** Time when the remaining calls will be reset to the limit. For compatibility reasons with other rate limited APIs, this date is not the date in milliseconds, but instead in seconds since 1970-01-01T00:00:00+00:00. ### Further Reading We provide additional documentation for our REST API in our [product documentation](https://www.ibm.com/docs/en/instana-observability/current?topic=apis-web-rest-api). Here you'll also find some common queries for retrieving data and configuring Instana. ## Getting Started with the REST API ### API base URL The base URL for an specific instance of Instana can be determined using the tenant and unit information. - `base`: This is the base URL of a tenant unit, e.g. `https://test-example.instana.io`. This is the same URL that is used to access the Instana user interface. - `apiToken`: Requests against the Instana API require valid API tokens. An initial API token can be generated via the Instana user interface. Any additional API tokens can be generated via the API itself. ### Curl Example Here is an Example to use the REST API with Curl. First lets get all the available metrics with possible aggregations with a GET call. ```bash curl --request GET \\ --url https://test-instana.instana.io/api/application-monitoring/catalog/metrics \\ --header 'authorization: apiToken xxxxxxxxxxxxxxxx' ``` Next we can get every call grouped by the endpoint name that has an error count greater then zero. As a metric we could get the mean error rate for example. ```bash curl --request POST \\ --url https://test-instana.instana.io/api/application-monitoring/analyze/call-groups \\ --header 'authorization: apiToken xxxxxxxxxxxxxxxx' \\ --header 'content-type: application/json' \\ --data '{ \"group\":{ \"groupbyTag\":\"endpoint.name\" }, \"tagFilters\":[ { \"name\":\"call.error.count\", \"value\":\"0\", \"operator\":\"GREATER_THAN\" } ], \"metrics\":[ { \"metric\":\"errors\", \"aggregation\":\"MEAN\" } ] }' ``` ### Generating REST API clients The API is specified using the [OpenAPI v3](https://github.com/OAI/OpenAPI-Specification) (previously known as Swagger) format. You can download the current specification at our [GitHub API documentation](https://instana.github.io/openapi/openapi.yaml). OpenAPI tries to solve the issue of ever-evolving APIs and clients lagging behind. Please make sure that you always use the latest version of the generator, as a number of improvements are regularly made. To generate a client library for your language, you can use the [OpenAPI client generators](https://github.com/OpenAPITools/openapi-generator). #### Go For example, to generate a client library for Go to interact with our backend, you can use the following script; mind replacing the values of the `UNIT_NAME` and `TENANT_NAME` environment variables using those for your tenant unit: ```bash #!/bin/bash ### This script assumes you have the `java` and `wget` commands on the path export UNIT_NAME='myunit' # for example: prod export TENANT_NAME='mytenant' # for example: awesomecompany //Download the generator to your current working directory: wget https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/4.3.1/openapi-generator-cli-4.3.1.jar -O openapi-generator-cli.jar --server-variables \"tenant=${TENANT_NAME},unit=${UNIT_NAME}\" //generate a client library that you can vendor into your repository java -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g go \\ -o pkg/instana/openapi \\ --skip-validate-spec //(optional) format the Go code according to the Go code standard gofmt -s -w pkg/instana/openapi ``` The generated clients contain comprehensive READMEs, and you can start right away using the client from the example above: ```go import instana \"./pkg/instana/openapi\" // readTags will read all available application monitoring tags along with their type and category func readTags() { configuration := instana.NewConfiguration() configuration.Host = \"tenant-unit.instana.io\" configuration.BasePath = \"https://tenant-unit.instana.io\" client := instana.NewAPIClient(configuration) auth := context.WithValue(context.Background(), instana.ContextAPIKey, instana.APIKey{ Key: apiKey, Prefix: \"apiToken\", }) tags, _, err := client.ApplicationCatalogApi.GetApplicationTagCatalog(auth) if err != nil { fmt.Fatalf(\"Error calling the API, aborting.\") } for _, tag := range tags { fmt.Printf(\"%s (%s): %s\\n\", tag.Category, tag.Type, tag.Name) } } ``` #### Java Follow the instructions provided in the official documentation from [OpenAPI Tools](https://github.com/OpenAPITools) to download the [openapi-generator-cli.jar](https://github.com/OpenAPITools/openapi-generator?tab=readme-ov-file#13---download-jar). Depending on your environment, use one of the following java http client implementations which will create a valid client for our OpenAPI specification: ``` //Nativ Java HTTP Client java -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g java -o pkg/instana/openapi --skip-validate-spec -p dateLibrary=java8 --library native //Spring WebClient java -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g java -o pkg/instana/openapi --skip-validate-spec -p dateLibrary=java8,hideGenerationTimestamp=true --library webclient //Spring RestTemplate java -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g java -o pkg/instana/openapi --skip-validate-spec -p dateLibrary=java8,hideGenerationTimestamp=true --library resttemplate ```
6
+ Documentation for INSTANA REST API
7
7
 
8
- The version of the OpenAPI document: 1.291.1002
8
+ The version of the OpenAPI document: 1.304.1059
9
9
  Contact: support@instana.com
10
10
  Generated by OpenAPI Generator (https://openapi-generator.tech)
11
11
 
@@ -39,7 +39,7 @@ class ServiceLevelObjectiveConfiguration(BaseModel):
39
39
  last_updated: Optional[datetime] = Field(default=None, description="Last updated date of Service Levels Objective Configuration", alias="lastUpdated")
40
40
  name: StrictStr = Field(description="Name of the Service Levels Objective Configuration")
41
41
  tags: List[StrictStr] = Field(description="List of tags associated with Service Levels Objective Configuration")
42
- target: Union[Annotated[float, Field(le=0.9999, strict=True, gt=0)], Annotated[int, Field(le=0, strict=True, gt=0)]] = Field(description="Service Levels Objective Configuration Target")
42
+ target: Union[Annotated[float, Field(le=0.9999, strict=True, gt=0.0)], Annotated[int, Field(le=0, strict=True, gt=0)]] = Field(description="Service Levels Objective Configuration Target")
43
43
  time_window: TimeWindow = Field(alias="timeWindow")
44
44
  __properties: ClassVar[List[str]] = ["createdDate", "entity", "id", "indicator", "lastUpdated", "name", "tags", "target", "timeWindow"]
45
45
 
@@ -3,9 +3,9 @@
3
3
  """
4
4
  Instana REST API documentation
5
5
 
6
- Searching for answers and best pratices? Check our [IBM Instana Community](https://community.ibm.com/community/user/aiops/communities/community-home?CommunityKey=58f324a3-3104-41be-9510-5b7c413cc48f). ## Overview The Instana REST API provides programmatic access to the Instana platform. It can be used to retrieve data available through the Instana UI Dashboard -- metrics, events, traces, etc -- and also to automate configuration tasks such as user management. ### Navigating the API documentation The API endpoints are grouped by product area and functionality. This generally maps to how our UI Dashboard is organized, hopefully making it easier to locate which endpoints you'd use to fetch the data you see visualized in our UI. The [UI sections](https://www.ibm.com/docs/en/instana-observability/current?topic=working-user-interface#navigation-menu) include: - Websites & Mobile Apps - Applications - Infrastructure - Synthetic Monitoring - Events - Automation - Service Levels - Settings - etc ### Rate Limiting A rate limit is applied to API usage. Up to 5,000 calls per hour can be made. How many remaining calls can be made and when this call limit resets, can inspected via three headers that are part of the responses of the API server. - **X-RateLimit-Limit:** Shows the maximum number of calls that may be executed per hour. - **X-RateLimit-Remaining:** How many calls may still be executed within the current hour. - **X-RateLimit-Reset:** Time when the remaining calls will be reset to the limit. For compatibility reasons with other rate limited APIs, this date is not the date in milliseconds, but instead in seconds since 1970-01-01T00:00:00+00:00. ### Further Reading We provide additional documentation for our REST API in our [product documentation](https://www.ibm.com/docs/en/instana-observability/current?topic=apis-web-rest-api). Here you'll also find some common queries for retrieving data and configuring Instana. ## Getting Started with the REST API ### API base URL The base URL for an specific instance of Instana can be determined using the tenant and unit information. - `base`: This is the base URL of a tenant unit, e.g. `https://test-example.instana.io`. This is the same URL that is used to access the Instana user interface. - `apiToken`: Requests against the Instana API require valid API tokens. An initial API token can be generated via the Instana user interface. Any additional API tokens can be generated via the API itself. ### Curl Example Here is an Example to use the REST API with Curl. First lets get all the available metrics with possible aggregations with a GET call. ```bash curl --request GET \\ --url https://test-instana.instana.io/api/application-monitoring/catalog/metrics \\ --header 'authorization: apiToken xxxxxxxxxxxxxxxx' ``` Next we can get every call grouped by the endpoint name that has an error count greater then zero. As a metric we could get the mean error rate for example. ```bash curl --request POST \\ --url https://test-instana.instana.io/api/application-monitoring/analyze/call-groups \\ --header 'authorization: apiToken xxxxxxxxxxxxxxxx' \\ --header 'content-type: application/json' \\ --data '{ \"group\":{ \"groupbyTag\":\"endpoint.name\" }, \"tagFilters\":[ { \"name\":\"call.error.count\", \"value\":\"0\", \"operator\":\"GREATER_THAN\" } ], \"metrics\":[ { \"metric\":\"errors\", \"aggregation\":\"MEAN\" } ] }' ``` ### Generating REST API clients The API is specified using the [OpenAPI v3](https://github.com/OAI/OpenAPI-Specification) (previously known as Swagger) format. You can download the current specification at our [GitHub API documentation](https://instana.github.io/openapi/openapi.yaml). OpenAPI tries to solve the issue of ever-evolving APIs and clients lagging behind. Please make sure that you always use the latest version of the generator, as a number of improvements are regularly made. To generate a client library for your language, you can use the [OpenAPI client generators](https://github.com/OpenAPITools/openapi-generator). #### Go For example, to generate a client library for Go to interact with our backend, you can use the following script; mind replacing the values of the `UNIT_NAME` and `TENANT_NAME` environment variables using those for your tenant unit: ```bash #!/bin/bash ### This script assumes you have the `java` and `wget` commands on the path export UNIT_NAME='myunit' # for example: prod export TENANT_NAME='mytenant' # for example: awesomecompany //Download the generator to your current working directory: wget https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/4.3.1/openapi-generator-cli-4.3.1.jar -O openapi-generator-cli.jar --server-variables \"tenant=${TENANT_NAME},unit=${UNIT_NAME}\" //generate a client library that you can vendor into your repository java -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g go \\ -o pkg/instana/openapi \\ --skip-validate-spec //(optional) format the Go code according to the Go code standard gofmt -s -w pkg/instana/openapi ``` The generated clients contain comprehensive READMEs, and you can start right away using the client from the example above: ```go import instana \"./pkg/instana/openapi\" // readTags will read all available application monitoring tags along with their type and category func readTags() { configuration := instana.NewConfiguration() configuration.Host = \"tenant-unit.instana.io\" configuration.BasePath = \"https://tenant-unit.instana.io\" client := instana.NewAPIClient(configuration) auth := context.WithValue(context.Background(), instana.ContextAPIKey, instana.APIKey{ Key: apiKey, Prefix: \"apiToken\", }) tags, _, err := client.ApplicationCatalogApi.GetApplicationTagCatalog(auth) if err != nil { fmt.Fatalf(\"Error calling the API, aborting.\") } for _, tag := range tags { fmt.Printf(\"%s (%s): %s\\n\", tag.Category, tag.Type, tag.Name) } } ``` #### Java Follow the instructions provided in the official documentation from [OpenAPI Tools](https://github.com/OpenAPITools) to download the [openapi-generator-cli.jar](https://github.com/OpenAPITools/openapi-generator?tab=readme-ov-file#13---download-jar). Depending on your environment, use one of the following java http client implementations which will create a valid client for our OpenAPI specification: ``` //Nativ Java HTTP Client java -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g java -o pkg/instana/openapi --skip-validate-spec -p dateLibrary=java8 --library native //Spring WebClient java -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g java -o pkg/instana/openapi --skip-validate-spec -p dateLibrary=java8,hideGenerationTimestamp=true --library webclient //Spring RestTemplate java -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g java -o pkg/instana/openapi --skip-validate-spec -p dateLibrary=java8,hideGenerationTimestamp=true --library resttemplate ```
6
+ Documentation for INSTANA REST API
7
7
 
8
- The version of the OpenAPI document: 1.291.1002
8
+ The version of the OpenAPI document: 1.309.1268
9
9
  Contact: support@instana.com
10
10
  Generated by OpenAPI Generator (https://openapi-generator.tech)
11
11
 
@@ -23,6 +23,7 @@ from typing import Any, ClassVar, Dict, List, Optional
23
23
  from typing_extensions import Annotated
24
24
  from instana_client.models.custom_payload_field import CustomPayloadField
25
25
  from instana_client.models.service_levels_alert_rule import ServiceLevelsAlertRule
26
+ from instana_client.models.service_levels_burn_rate_config import ServiceLevelsBurnRateConfig
26
27
  from instana_client.models.service_levels_burn_rate_time_windows import ServiceLevelsBurnRateTimeWindows
27
28
  from instana_client.models.service_levels_time_threshold import ServiceLevelsTimeThreshold
28
29
  from instana_client.models.static_threshold import StaticThreshold
@@ -34,17 +35,18 @@ class ServiceLevelsAlertConfig(BaseModel):
34
35
  ServiceLevelsAlertConfig
35
36
  """ # noqa: E501
36
37
  alert_channel_ids: Annotated[List[StrictStr], Field(min_length=0, max_length=1024)] = Field(description="This is the list of channel IDs when alert triggered and sent to.", alias="alertChannelIds")
38
+ burn_rate_config: Optional[List[ServiceLevelsBurnRateConfig]] = Field(default=None, description="This is the burn rate alert configuration which defines alerting windows and corresponding thresholds. This configuration must to specified for BURN_RATE_V2 Alerts.", alias="burnRateConfig")
37
39
  burn_rate_time_windows: Optional[ServiceLevelsBurnRateTimeWindows] = Field(default=None, alias="burnRateTimeWindows")
38
40
  custom_payload_fields: Annotated[List[CustomPayloadField], Field(min_length=0, max_length=20)] = Field(description="This is the custom name and value pairs to be sent along with the alert to the alert channels.", alias="customPayloadFields")
39
41
  description: Annotated[str, Field(min_length=0, strict=True, max_length=65536)] = Field(description="The description of the alert. It is also the alert message content.")
40
42
  name: Annotated[str, Field(min_length=0, strict=True, max_length=256)] = Field(description="Name of the Service Levels Smart Alerts Configuration.")
41
43
  rule: ServiceLevelsAlertRule
42
- severity: Optional[StrictInt] = Field(default=None, description="This is the severity of the alert. The value can be: <b>5</b>: warning, <b>10</b>: critical.")
44
+ severity: StrictInt = Field(description="This is the severity of the alert. The value can be: <b>5</b>: warning, <b>10</b>: critical.")
43
45
  slo_ids: Annotated[List[StrictStr], Field(min_length=0, max_length=1024)] = Field(description="This is the list of SLO configurations related to this alert.", alias="sloIds")
44
- threshold: StaticThreshold
46
+ threshold: Optional[StaticThreshold] = None
45
47
  time_threshold: ServiceLevelsTimeThreshold = Field(alias="timeThreshold")
46
48
  triggering: Optional[StrictBool] = Field(default=None, description="Incident flag. If value is true, this alert will become an accident.")
47
- __properties: ClassVar[List[str]] = ["alertChannelIds", "burnRateTimeWindows", "customPayloadFields", "description", "name", "rule", "severity", "sloIds", "threshold", "timeThreshold", "triggering"]
49
+ __properties: ClassVar[List[str]] = ["alertChannelIds", "burnRateConfig", "burnRateTimeWindows", "customPayloadFields", "description", "name", "rule", "severity", "sloIds", "threshold", "timeThreshold", "triggering"]
48
50
 
49
51
  model_config = ConfigDict(
50
52
  populate_by_name=True,
@@ -85,6 +87,13 @@ class ServiceLevelsAlertConfig(BaseModel):
85
87
  exclude=excluded_fields,
86
88
  exclude_none=True,
87
89
  )
90
+ # override the default output from pydantic by calling `to_dict()` of each item in burn_rate_config (list)
91
+ _items = []
92
+ if self.burn_rate_config:
93
+ for _item_burn_rate_config in self.burn_rate_config:
94
+ if _item_burn_rate_config:
95
+ _items.append(_item_burn_rate_config.to_dict())
96
+ _dict['burnRateConfig'] = _items
88
97
  # override the default output from pydantic by calling `to_dict()` of burn_rate_time_windows
89
98
  if self.burn_rate_time_windows:
90
99
  _dict['burnRateTimeWindows'] = self.burn_rate_time_windows.to_dict()
@@ -117,6 +126,7 @@ class ServiceLevelsAlertConfig(BaseModel):
117
126
 
118
127
  _obj = cls.model_validate({
119
128
  "alertChannelIds": obj.get("alertChannelIds"),
129
+ "burnRateConfig": [ServiceLevelsBurnRateConfig.from_dict(_item) for _item in obj["burnRateConfig"]] if obj.get("burnRateConfig") is not None else None,
120
130
  "burnRateTimeWindows": ServiceLevelsBurnRateTimeWindows.from_dict(obj["burnRateTimeWindows"]) if obj.get("burnRateTimeWindows") is not None else None,
121
131
  "customPayloadFields": [CustomPayloadField.from_dict(_item) for _item in obj["customPayloadFields"]] if obj.get("customPayloadFields") is not None else None,
122
132
  "description": obj.get("description"),
@@ -3,9 +3,9 @@
3
3
  """
4
4
  Instana REST API documentation
5
5
 
6
- Searching for answers and best pratices? Check our [IBM Instana Community](https://community.ibm.com/community/user/aiops/communities/community-home?CommunityKey=58f324a3-3104-41be-9510-5b7c413cc48f). ## Overview The Instana REST API provides programmatic access to the Instana platform. It can be used to retrieve data available through the Instana UI Dashboard -- metrics, events, traces, etc -- and also to automate configuration tasks such as user management. ### Navigating the API documentation The API endpoints are grouped by product area and functionality. This generally maps to how our UI Dashboard is organized, hopefully making it easier to locate which endpoints you'd use to fetch the data you see visualized in our UI. The [UI sections](https://www.ibm.com/docs/en/instana-observability/current?topic=working-user-interface#navigation-menu) include: - Websites & Mobile Apps - Applications - Infrastructure - Synthetic Monitoring - Events - Automation - Service Levels - Settings - etc ### Rate Limiting A rate limit is applied to API usage. Up to 5,000 calls per hour can be made. How many remaining calls can be made and when this call limit resets, can inspected via three headers that are part of the responses of the API server. - **X-RateLimit-Limit:** Shows the maximum number of calls that may be executed per hour. - **X-RateLimit-Remaining:** How many calls may still be executed within the current hour. - **X-RateLimit-Reset:** Time when the remaining calls will be reset to the limit. For compatibility reasons with other rate limited APIs, this date is not the date in milliseconds, but instead in seconds since 1970-01-01T00:00:00+00:00. ### Further Reading We provide additional documentation for our REST API in our [product documentation](https://www.ibm.com/docs/en/instana-observability/current?topic=apis-web-rest-api). Here you'll also find some common queries for retrieving data and configuring Instana. ## Getting Started with the REST API ### API base URL The base URL for an specific instance of Instana can be determined using the tenant and unit information. - `base`: This is the base URL of a tenant unit, e.g. `https://test-example.instana.io`. This is the same URL that is used to access the Instana user interface. - `apiToken`: Requests against the Instana API require valid API tokens. An initial API token can be generated via the Instana user interface. Any additional API tokens can be generated via the API itself. ### Curl Example Here is an Example to use the REST API with Curl. First lets get all the available metrics with possible aggregations with a GET call. ```bash curl --request GET \\ --url https://test-instana.instana.io/api/application-monitoring/catalog/metrics \\ --header 'authorization: apiToken xxxxxxxxxxxxxxxx' ``` Next we can get every call grouped by the endpoint name that has an error count greater then zero. As a metric we could get the mean error rate for example. ```bash curl --request POST \\ --url https://test-instana.instana.io/api/application-monitoring/analyze/call-groups \\ --header 'authorization: apiToken xxxxxxxxxxxxxxxx' \\ --header 'content-type: application/json' \\ --data '{ \"group\":{ \"groupbyTag\":\"endpoint.name\" }, \"tagFilters\":[ { \"name\":\"call.error.count\", \"value\":\"0\", \"operator\":\"GREATER_THAN\" } ], \"metrics\":[ { \"metric\":\"errors\", \"aggregation\":\"MEAN\" } ] }' ``` ### Generating REST API clients The API is specified using the [OpenAPI v3](https://github.com/OAI/OpenAPI-Specification) (previously known as Swagger) format. You can download the current specification at our [GitHub API documentation](https://instana.github.io/openapi/openapi.yaml). OpenAPI tries to solve the issue of ever-evolving APIs and clients lagging behind. Please make sure that you always use the latest version of the generator, as a number of improvements are regularly made. To generate a client library for your language, you can use the [OpenAPI client generators](https://github.com/OpenAPITools/openapi-generator). #### Go For example, to generate a client library for Go to interact with our backend, you can use the following script; mind replacing the values of the `UNIT_NAME` and `TENANT_NAME` environment variables using those for your tenant unit: ```bash #!/bin/bash ### This script assumes you have the `java` and `wget` commands on the path export UNIT_NAME='myunit' # for example: prod export TENANT_NAME='mytenant' # for example: awesomecompany //Download the generator to your current working directory: wget https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/4.3.1/openapi-generator-cli-4.3.1.jar -O openapi-generator-cli.jar --server-variables \"tenant=${TENANT_NAME},unit=${UNIT_NAME}\" //generate a client library that you can vendor into your repository java -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g go \\ -o pkg/instana/openapi \\ --skip-validate-spec //(optional) format the Go code according to the Go code standard gofmt -s -w pkg/instana/openapi ``` The generated clients contain comprehensive READMEs, and you can start right away using the client from the example above: ```go import instana \"./pkg/instana/openapi\" // readTags will read all available application monitoring tags along with their type and category func readTags() { configuration := instana.NewConfiguration() configuration.Host = \"tenant-unit.instana.io\" configuration.BasePath = \"https://tenant-unit.instana.io\" client := instana.NewAPIClient(configuration) auth := context.WithValue(context.Background(), instana.ContextAPIKey, instana.APIKey{ Key: apiKey, Prefix: \"apiToken\", }) tags, _, err := client.ApplicationCatalogApi.GetApplicationTagCatalog(auth) if err != nil { fmt.Fatalf(\"Error calling the API, aborting.\") } for _, tag := range tags { fmt.Printf(\"%s (%s): %s\\n\", tag.Category, tag.Type, tag.Name) } } ``` #### Java Follow the instructions provided in the official documentation from [OpenAPI Tools](https://github.com/OpenAPITools) to download the [openapi-generator-cli.jar](https://github.com/OpenAPITools/openapi-generator?tab=readme-ov-file#13---download-jar). Depending on your environment, use one of the following java http client implementations which will create a valid client for our OpenAPI specification: ``` //Nativ Java HTTP Client java -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g java -o pkg/instana/openapi --skip-validate-spec -p dateLibrary=java8 --library native //Spring WebClient java -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g java -o pkg/instana/openapi --skip-validate-spec -p dateLibrary=java8,hideGenerationTimestamp=true --library webclient //Spring RestTemplate java -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g java -o pkg/instana/openapi --skip-validate-spec -p dateLibrary=java8,hideGenerationTimestamp=true --library resttemplate ```
6
+ Documentation for INSTANA REST API
7
7
 
8
- The version of the OpenAPI document: 1.291.1002
8
+ The version of the OpenAPI document: 1.309.1268
9
9
  Contact: support@instana.com
10
10
  Generated by OpenAPI Generator (https://openapi-generator.tech)
11
11