Skip to content

Commit

Permalink
[Monitor] az monitor app-insights query: fix for --offset (Azure#1830)
Browse files Browse the repository at this point in the history
  • Loading branch information
mmyyrroonn authored Jun 5, 2020
1 parent 013f537 commit 255d968
Show file tree
Hide file tree
Showing 6 changed files with 111 additions and 3 deletions.
2 changes: 1 addition & 1 deletion pylintrc
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ disable=missing-docstring,

[TYPECHECK]
# For Azure CLI extensions, we ignore some import errors as they'll be available in the environment of the CLI
ignored-modules=azure,azure.cli,azure.cli.core,azure.cli.core.commands,knack,msrestazure,argcomplete,azure_devtools
ignored-modules=azure,azure.cli,azure.cli.core,azure.cli.core.commands,knack,msrestazure,argcomplete,azure_devtools,isodate

[FORMAT]
max-line-length=120
Expand Down
5 changes: 5 additions & 0 deletions src/application-insights/HISTORY.rst
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
0.1.8
++++++++++++++++++

* Argument `--offset` in `az monitor app-insights query` supports iso8601 format.

0.1.7
++++++++++++++++++

Expand Down
4 changes: 4 additions & 0 deletions src/application-insights/azext_applicationinsights/custom.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@

# pylint: disable=line-too-long, protected-access

import datetime
import isodate
from knack.util import CLIError
from knack.log import get_logger
from azext_applicationinsights.vendored_sdks.applicationinsights.models import ErrorResponseException
Expand All @@ -19,6 +21,8 @@ def execute_query(cmd, client, application, analytics_query, start_time=None, en
"""Executes a query against the provided Application Insights application."""
from .vendored_sdks.applicationinsights.models import QueryBody
targets = get_query_targets(cmd.cli_ctx, application, resource_group_name)
if not isinstance(offset, datetime.timedelta):
offset = isodate.parse_duration(offset)
try:
return client.query.execute(targets[0], QueryBody(query=analytics_query, timespan=get_timespan(cmd.cli_ctx, start_time, end_time, offset), applications=targets[1:]))
except ErrorResponseException as ex:
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
interactions:
- request:
body: '{"query": "availabilityResults | distinct name | order by name asc", "timespan":
"2020-06-01T19:21:28.027311/2020-06-05T07:21:28.027311", "applications": []}'
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '157'
Content-Type:
- application/json; charset=utf-8
User-Agent:
- python/3.8.0 (Windows-10-10.0.18362-SP0) msrest/0.6.9 azure-applicationinsights/0.1.0
method: POST
uri: https://api.applicationinsights.io/v1/apps/db709f0e-cb4e-4f43-ba80-05e10d6a4447/query
response:
body:
string: '{"tables":[{"name":"PrimaryResult","columns":[{"name":"name","type":"string"}],"rows":[]}]}'
headers:
access-control-allow-origin:
- '*'
access-control-expose-headers:
- Retry-After,Age,WWW-Authenticate,x-resource-identities,x-ms-status-location
connection:
- keep-alive
content-length:
- '91'
content-type:
- application/json; charset=utf-8
date:
- Fri, 05 Jun 2020 07:21:29 GMT
strict-transport-security:
- max-age=15724800; includeSubDomains
vary:
- Accept-Encoding
via:
- 1.1 draft-oms-5f5bbdf49d-pgt7m
x-content-type-options:
- nosniff
status:
code: 200
message: OK
- request:
body: '{"query": "availabilityResults | distinct name | order by name asc", "timespan":
"2020-06-01T19:20:29.882273/2020-06-05T07:21:29.882273", "applications": []}'
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '157'
Content-Type:
- application/json; charset=utf-8
User-Agent:
- python/3.8.0 (Windows-10-10.0.18362-SP0) msrest/0.6.9 azure-applicationinsights/0.1.0
method: POST
uri: https://api.applicationinsights.io/v1/apps/db709f0e-cb4e-4f43-ba80-05e10d6a4447/query
response:
body:
string: '{"tables":[{"name":"PrimaryResult","columns":[{"name":"name","type":"string"}],"rows":[]}]}'
headers:
access-control-allow-origin:
- '*'
access-control-expose-headers:
- Retry-After,Age,WWW-Authenticate,x-resource-identities,x-ms-status-location
connection:
- keep-alive
content-length:
- '91'
content-type:
- application/json; charset=utf-8
date:
- Fri, 05 Jun 2020 07:21:30 GMT
strict-transport-security:
- max-age=15724800; includeSubDomains
vary:
- Accept-Encoding
via:
- 1.1 draft-oms-5f5bbdf49d-548wj
x-content-type-options:
- nosniff
status:
code: 200
message: OK
version: 1
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,11 @@ def test_query_execute(self):
assert len(query_guid['tables'][0]['rows']) == 37
assert isinstance(query_guid['tables'][0]['rows'][0][1], (int, float, complex))

def test_query_execute_with_different_offset(self):
"""Tests data plane query capabilities for Application Insights."""
self.cmd('az monitor app-insights query --apps db709f0e-cb4e-4f43-ba80-05e10d6a4447 --analytics-query "availabilityResults | distinct name | order by name asc" --offset P3DT12H')
self.cmd('az monitor app-insights query --apps db709f0e-cb4e-4f43-ba80-05e10d6a4447 --analytics-query "availabilityResults | distinct name | order by name asc" --offset 3d12h1m')

def test_metrics_show(self):
self.cmd('az monitor app-insights metrics show --app 578f0e27-12e9-4631-bc02-50b965da2633 --metrics requests/duration --aggregation count sum --start-time 2019-03-06 00:31 +00:00 --end-time 2019-03-06 01:31 +00:00', checks=[
self.check('value."requests/duration".count', 0),
Expand Down
6 changes: 4 additions & 2 deletions src/application-insights/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
from codecs import open
from setuptools import setup, find_packages

VERSION = "0.1.7"
VERSION = "0.1.8"

CLASSIFIERS = [
'Development Status :: 4 - Beta',
Expand All @@ -24,7 +24,9 @@
'License :: OSI Approved :: MIT License',
]

DEPENDENCIES = []
DEPENDENCIES = [
"isodate~=0.6.0"
]

with open('README.rst', 'r', encoding='utf-8') as f:
README = f.read()
Expand Down

0 comments on commit 255d968

Please sign in to comment.