Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
N
nexpie-grafana-theme
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Registry
Registry
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Kornkitt Poolsup
nexpie-grafana-theme
Commits
b712337a
Unverified
Commit
b712337a
authored
Dec 31, 2018
by
David
Committed by
GitHub
Dec 31, 2018
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #14693 from grafana/davkal/loki-single-query
Loki: change query row to be single field again
parents
75f9d173
32438c47
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
19 additions
and
50 deletions
+19
-50
public/app/plugins/datasource/loki/components/LokiCheatSheet.tsx
+5
-5
public/app/plugins/datasource/loki/components/LokiQueryField.tsx
+14
-45
No files found.
public/app/plugins/datasource/loki/components/LokiCheatSheet.tsx
View file @
b712337a
...
...
@@ -3,22 +3,22 @@ import React from 'react';
const
CHEAT_SHEET_ITEMS
=
[
{
title
:
'See your logs'
,
label
:
'Start by selecting a log stream from the Log
L
abels selector.'
,
label
:
'Start by selecting a log stream from the Log
l
abels selector.'
,
},
{
title
:
'Logs
From a Job
'
,
title
:
'Logs
from a "job"
'
,
expression
:
'{job="default/prometheus"}'
,
label
:
'Returns all log lines emitted by instances of this job.'
,
},
{
title
:
'Combine
Stream S
electors'
,
title
:
'Combine
stream s
electors'
,
expression
:
'{app="cassandra",namespace="prod"}'
,
label
:
'Returns all log lines from streams that have both labels.'
,
},
{
title
:
'Search
For T
ext'
,
title
:
'Search
for t
ext'
,
expression
:
'{app="cassandra"} (duration|latency)
\\
s*(=|is|of)
\\
s*[
\\
d
\\
.]+'
,
label
:
'
The right search field takes a regular expression to search
for.'
,
label
:
'
Add a regular expression after the selector to filter
for.'
,
},
];
...
...
public/app/plugins/datasource/loki/components/LokiQueryField.tsx
View file @
b712337a
...
...
@@ -12,14 +12,18 @@ import BracesPlugin from 'app/features/explore/slate-plugins/braces';
import
RunnerPlugin
from
'app/features/explore/slate-plugins/runner'
;
import
QueryField
,
{
TypeaheadInput
,
QueryFieldState
}
from
'app/features/explore/QueryField'
;
import
{
DataQuery
}
from
'app/types'
;
import
{
parseQuery
,
formatQuery
}
from
'../query_utils'
;
const
PRISM_SYNTAX
=
'promql'
;
const
SEARCH_FIELD_STYLES
=
{
width
:
'66%'
,
marginLeft
:
3
,
};
function
getChooserText
(
hasSytax
,
hasLogLabels
)
{
if
(
!
hasSytax
)
{
return
'Loading labels...'
;
}
if
(
!
hasLogLabels
)
{
return
'(No labels found)'
;
}
return
'Log labels'
;
}
export
function
willApplySuggestion
(
suggestion
:
string
,
{
typeaheadContext
,
typeaheadText
}:
QueryFieldState
):
string
{
// Modify suggestion based on context
...
...
@@ -145,35 +149,12 @@ class LokiQueryField extends React.PureComponent<LokiQueryFieldProps, LokiQueryF
};
onChangeQuery
=
(
value
:
string
,
override
?:
boolean
)
=>
{
const
enableSearchField
=
!
this
.
modifiedQuery
&&
value
;
this
.
modifiedQuery
=
value
;
// Send text change to parent
const
{
initialQuery
,
onQueryChange
}
=
this
.
props
;
if
(
onQueryChange
)
{
const
search
=
this
.
modifiedSearch
||
parseQuery
(
initialQuery
.
expr
).
regexp
;
const
expr
=
formatQuery
(
value
,
search
);
const
query
=
{
...
initialQuery
,
expr
,
};
onQueryChange
(
query
,
override
);
}
// Enable the search field if we have a selector query
if
(
enableSearchField
)
{
this
.
forceUpdate
();
}
};
onChangeSearch
=
(
value
:
string
,
override
?:
boolean
)
=>
{
this
.
modifiedSearch
=
value
;
// Send text change to parent
const
{
initialQuery
,
onQueryChange
}
=
this
.
props
;
if
(
onQueryChange
)
{
const
selector
=
this
.
modifiedQuery
||
parseQuery
(
initialQuery
.
expr
).
query
;
const
expr
=
formatQuery
(
selector
,
value
);
const
query
=
{
...
initialQuery
,
expr
,
expr
:
value
,
};
onQueryChange
(
query
,
override
);
}
...
...
@@ -223,10 +204,8 @@ class LokiQueryField extends React.PureComponent<LokiQueryFieldProps, LokiQueryF
const
{
error
,
hint
,
initialQuery
}
=
this
.
props
;
const
{
logLabelOptions
,
syntaxLoaded
}
=
this
.
state
;
const
cleanText
=
this
.
languageProvider
?
this
.
languageProvider
.
cleanText
:
undefined
;
const
chooserText
=
syntaxLoaded
?
'Log labels'
:
'Loading labels...'
;
const
parsedInitialQuery
=
parseQuery
(
initialQuery
.
expr
);
// Disable search field to make clear that we need a selector query first
const
searchDisabled
=
!
parsedInitialQuery
.
query
&&
!
this
.
modifiedQuery
;
const
hasLogLabels
=
logLabelOptions
&&
logLabelOptions
.
length
>
0
;
const
chooserText
=
getChooserText
(
syntaxLoaded
,
hasLogLabels
);
return
(
<
div
className=
"prom-query-field"
>
...
...
@@ -241,11 +220,11 @@ class LokiQueryField extends React.PureComponent<LokiQueryFieldProps, LokiQueryF
<
QueryField
additionalPlugins=
{
this
.
plugins
}
cleanText=
{
cleanText
}
initialQuery=
{
parsedInitialQuery
.
query
}
initialQuery=
{
initialQuery
.
expr
}
onTypeahead=
{
this
.
onTypeahead
}
onWillApplySuggestion=
{
willApplySuggestion
}
onValueChanged=
{
this
.
onChangeQuery
}
placeholder=
"
Start with a Loki stream selector
"
placeholder=
"
Enter a Loki query
"
portalOrigin=
"loki"
syntaxLoaded=
{
syntaxLoaded
}
/>
...
...
@@ -261,16 +240,6 @@ class LokiQueryField extends React.PureComponent<LokiQueryFieldProps, LokiQueryF
</
div
>
)
:
null
}
</
div
>
<
div
className=
"prom-query-field-wrapper"
style=
{
SEARCH_FIELD_STYLES
}
>
<
QueryField
additionalPlugins=
{
this
.
pluginsSearch
}
disabled=
{
searchDisabled
}
initialQuery=
{
parsedInitialQuery
.
regexp
}
onValueChanged=
{
this
.
onChangeSearch
}
placeholder=
"Search by regular expression"
portalOrigin=
"loki"
/>
</
div
>
</
div
>
);
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment