diff --git a/apimanager/metrics/static/metrics/js/lastEndpointMetric.js b/apimanager/metrics/static/metrics/js/lastEndpointMetric.js new file mode 100644 index 00000000..7e623329 --- /dev/null +++ b/apimanager/metrics/static/metrics/js/lastEndpointMetric.js @@ -0,0 +1,16 @@ +$(document).ready(function($) { + getMetricLastEndpoint(); +}); + +function getMetricLastEndpoint(){ + $.ajax({url: "/metrics/api/last-endpoint", success: function(result){ + var content = "" + +result['implemented_by_partial_function']+" took " + +result['duration']+" ms at " + +result['date']+" " + +result['verb']+" " + + result['url']; + $("#last_endpoint").text(content); + setTimeout(function(){getMetricLastEndpoint();}, 5000); // will call function to update time every 5 seconds + }}); +} diff --git a/apimanager/metrics/templates/metrics/api.html b/apimanager/metrics/templates/metrics/api.html index 24d13c52..b335207c 100644 --- a/apimanager/metrics/templates/metrics/api.html +++ b/apimanager/metrics/templates/metrics/api.html @@ -3,7 +3,9 @@ {% load i18n %} {% block page_title %}{{ block.super }} / API Metrics{% endblock page_title %} - +{% block extrajs %} + +{% endblock extrajs %} {% load bootstrap3 %} {% block content %}
@@ -12,7 +14,7 @@ {{ form.media }} {# Form required JS and CSS #} {% endblock %}

{% trans "API Metrics" %}

- +

getBanks took 43ms at 2023-12-06T11:00:49Z GET /obp/v4.0.0/banks ms.

{% trans "Filter" %}

diff --git a/apimanager/metrics/urls.py b/apimanager/metrics/urls.py index 3803ef73..d94d6b8b 100644 --- a/apimanager/metrics/urls.py +++ b/apimanager/metrics/urls.py @@ -15,13 +15,17 @@ WeeklySummaryView, DailySummaryView, HourlySummaryView, - CustomSummaryView + CustomSummaryView, + get_metric_last_endpoint ) urlpatterns = [ url(r'^api/$', APIMetricsView.as_view(), name='api-metrics'), + url(r'^api/last-endpoint/$', + get_metric_last_endpoint, + name='api-metrics-last-endpoint'), url(r'^api/summary-partial-function$', APISummaryPartialFunctionView.as_view(), name='api-metrics-summary-partial-function'), diff --git a/apimanager/metrics/views.py b/apimanager/metrics/views.py index 587e3b14..fc4fa29f 100644 --- a/apimanager/metrics/views.py +++ b/apimanager/metrics/views.py @@ -10,6 +10,7 @@ from enum import Enum from django.conf import settings +from django.http import JsonResponse from apimanager import local_settings from apimanager.settings import API_HOST, EXCLUDE_APPS, EXCLUDE_FUNCTIONS, EXCLUDE_URL_PATTERN, API_EXPLORER_APP_NAME, API_DATE_FORMAT_WITH_MILLISECONDS, API_DATE_FORMAT_WITH_SECONDS , DEBUG from django.contrib import messages @@ -201,6 +202,26 @@ def get_context_data(self, **kwargs): }) return context +def get_metric_last_endpoint(request): + to_date = datetime.datetime.now().strftime(settings.API_DATE_FORMAT_WITH_MILLISECONDS) + urlpath = "/management/metrics?limit=1&to_date="+to_date + api = API(request.session.get('obp')) + last_endpoint_metric={} + try: + metric = api.get(urlpath)['metrics'][0] + last_endpoint_metric={ + 'implemented_by_partial_function':metric['implemented_by_partial_function'], + 'duration': metric['duration'], + 'date': metric['date'], + 'verb': metric['verb'], + 'url': metric['url'] + } + except Exception as err: + LOGGER.exception('error_once_only - Error Message: {}'.format(err)) + + return JsonResponse(last_endpoint_metric) + + class APISummaryPartialFunctionView(APIMetricsView): template_name = 'metrics/api_summary_partial_function.html'