fix: ingestion page ui changes (#1825)

This PR contains below list of items:
- Ingestion page improvements
- Logs page Data table by expanding one of the record in logs table,
select "table" mode field name is in red color to match with json tab.
- Menu selection for child routes.
This commit is contained in:
Bhargav
2023-11-01 18:45:23 +05:30
committed by GitHub
parent 86f8d18d92
commit b8874be4e4
24 changed files with 121 additions and 476 deletions
+1 -21
View File
@@ -16,7 +16,6 @@
<template>
<div class="tabContent">
<div class="tabContent__head">
<pre data-test="rum-content-text">{{ displayContent || content }}</pre>
<div>
<div class="copy_action">
<q-btn
@@ -32,6 +31,7 @@
</div>
</div>
</div>
<pre data-test="rum-content-text">{{ displayContent || content }}</pre>
</div>
</template>
@@ -82,23 +82,3 @@ export default defineComponent({
},
});
</script>
<style scoped lang="scss">
.tabContent {
background-color: rgba(136, 136, 136, 0.103);
// tab content bg color
padding: 10px 20px;
border-radius: 0.5rem;
&__head {
justify-content: space-between;
display: flex;
}
pre {
white-space: pre-wrap;
word-wrap: break-word;
font-size: 14px;
margin: 0;
line-height: 30px;
}
}
</style>
+4 -1
View File
@@ -29,7 +29,7 @@
: ''
"
clickable
:class="{ 'ql-item-mini': mini }"
:class="{ 'ql-item-mini': mini, 'q-router-link--active': router.currentRoute.value.path.indexOf(link) == 0 && link != '/' }"
:target="target"
@click="external ? openWebPage(link) : ''"
>
@@ -49,6 +49,7 @@
<script lang="ts">
import { defineComponent } from "vue";
import { useStore } from "vuex";
import { useRouter } from "vue-router";
export default defineComponent({
name: "MenuLink",
@@ -95,12 +96,14 @@ export default defineComponent({
},
setup() {
const store = useStore();
const router: any = useRouter();
const openWebPage = (url: string) => {
window.open(url, "_blank");
};
return {
store,
router,
openWebPage,
};
},
@@ -73,6 +73,17 @@
label="OTEL"
content-class="tab_content"
/>
<q-route-tab
name="ingestFromTraces"
:to="{
name: 'ingestFromTraces',
query: {
org_identifier: store.state.selectedOrganization.identifier,
},
}"
label="Traces (OpenTelelmetry)"
content-class="tab_content"
/>
<q-route-tab
name="frontendMonitoring"
:to="{
+1 -32
View File
@@ -16,7 +16,6 @@
<template>
<div class="tabContent q-ma-md">
<div class="tabContent__head">
<div class="title" data-test="curl-title-text">CURL</div>
<div class="copy_action">
<q-btn
data-test="curl-copy-btn"
@@ -35,8 +34,7 @@ curl -u {{ currUserEmail }}:{{
store.state.organizationData.organizationPasscode
}} -k {{ endpoint.url }}/api/{{
currOrgIdentifier
}}/default/_json -d '[{"level":"info","job":"test","log":"test message for openobserve"}]'
</pre>
}}/default/_json -d '[{"level":"info","job":"test","log":"test message for openobserve"}]'</pre>
</div>
</template>
@@ -88,32 +86,3 @@ export default defineComponent({
},
});
</script>
<style scoped lang="scss">
.tabContent {
background-color: rgba(136, 136, 136, 0.103);
// tab content bg color
padding: 1rem 1.25rem 0.5rem;
border-radius: 0.5rem;
&__head {
justify-content: space-between;
text-transform: uppercase;
align-items: center;
display: flex;
.title {
line-height: 1rem;
font-weight: 600;
}
.copy_action {
.q-btn {
// background-color: white;
}
}
}
pre {
white-space: pre-wrap;
word-wrap: break-word;
margin-bottom: 0;
}
}
</style>
@@ -16,7 +16,6 @@
<template>
<div class="tabContent q-ma-md">
<div class="tabContent__head">
<div class="title" data-test="fluent-bit-title-text">Filebeat</div>
<div class="copy_action">
<q-btn
data-test="fluent-bit-copy-btn"
@@ -98,32 +97,3 @@ export default defineComponent({
},
});
</script>
<style scoped lang="scss">
.tabContent {
background-color: rgba(136, 136, 136, 0.103);
// tab content bg color
padding: 1rem 1.25rem 0.5rem;
border-radius: 0.5rem;
&__head {
justify-content: space-between;
text-transform: uppercase;
align-items: center;
display: flex;
.title {
line-height: 1rem;
font-weight: 600;
}
.copy_action {
.q-btn {
// background-color: white;
}
}
}
pre {
white-space: pre-wrap;
word-wrap: break-word;
margin-bottom: 0;
}
}
</style>
@@ -16,7 +16,6 @@
<template>
<div class="tabContent q-ma-md">
<div class="tabContent__head">
<div class="title" data-test="fluent-bit-title-text">Fluent Bit</div>
<div class="copy_action">
<q-btn
data-test="fluent-bit-copy-btn"
@@ -105,32 +104,3 @@ export default defineComponent({
},
});
</script>
<style scoped lang="scss">
.tabContent {
background-color: rgba(136, 136, 136, 0.103);
// tab content bg color
padding: 1rem 1.25rem 0.5rem;
border-radius: 0.5rem;
&__head {
justify-content: space-between;
text-transform: uppercase;
align-items: center;
display: flex;
.title {
line-height: 1rem;
font-weight: 600;
}
.copy_action {
.q-btn {
// background-color: white;
}
}
}
pre {
white-space: pre-wrap;
word-wrap: break-word;
margin-bottom: 0;
}
}
</style>
@@ -16,7 +16,6 @@
<template>
<div class="tabContent q-ma-md">
<div class="tabContent__head">
<div class="title" data-test="fluentd-title-text">Fluentd</div>
<div class="copy_action">
<q-btn
data-test="fluentd-copy-btn"
@@ -96,32 +95,3 @@ export default defineComponent({
},
});
</script>
<style scoped lang="scss">
.tabContent {
background-color: rgba(136, 136, 136, 0.103);
// tab content bg color
padding: 1rem 1.25rem 0.5rem;
border-radius: 0.5rem;
&__head {
justify-content: space-between;
text-transform: uppercase;
align-items: center;
display: flex;
.title {
line-height: 1rem;
font-weight: 600;
}
.copy_action {
.q-btn {
// background-color: white;
}
}
}
pre {
white-space: pre-wrap;
word-wrap: break-word;
margin-bottom: 0;
}
}
</style>
@@ -16,9 +16,6 @@
<template>
<div class="tabContent q-ma-md">
<div class="tabContent__head">
<div class="title" data-test="vector-title-text">
GCP Logs via (Pub/Sub)
</div>
<div class="copy_action">
<q-btn
data-test="gcpLogs-copy-btn"
@@ -35,8 +32,7 @@
<pre ref="gcpContent" data-test="vector-content-text">
URL: {{ endpoint.url }}/gcp/{{ currOrgIdentifier }}/default/_sub?API-Key={{
accessKey
}}
</pre
}}</pre
>
</div>
</template>
@@ -92,32 +88,3 @@ export default defineComponent({
},
});
</script>
<style scoped lang="scss">
.tabContent {
background-color: rgba(136, 136, 136, 0.103);
// tab content bg color
padding: 1rem 1.25rem 0.5rem;
border-radius: 0.5rem;
&__head {
justify-content: space-between;
text-transform: uppercase;
align-items: center;
display: flex;
.title {
line-height: 1rem;
font-weight: 600;
}
.copy_action {
.q-btn {
// background-color: white;
}
}
}
pre {
white-space: pre-wrap;
word-wrap: break-word;
margin-bottom: 0;
}
}
</style>
@@ -16,7 +16,6 @@
<template>
<div class="tabContent q-ma-md">
<div class="tabContent__head">
<div class="title" data-test="vector-title-text">KINESIS FIREHOSE</div>
<div class="copy_action">
<q-btn
data-test="kinesisfirehose-copy-btn"
@@ -34,8 +33,7 @@
HTTP Endpoint: {{ endpoint.url }}/aws/{{
currOrgIdentifier
}}/default/_kinesis_firehose
Access Key: {{ accessKey }}
</pre
Access Key: {{ accessKey }}</pre
>
</div>
</template>
@@ -91,32 +89,3 @@ export default defineComponent({
},
});
</script>
<style scoped lang="scss">
.tabContent {
background-color: rgba(136, 136, 136, 0.103);
// tab content bg color
padding: 1rem 1.25rem 0.5rem;
border-radius: 0.5rem;
&__head {
justify-content: space-between;
text-transform: uppercase;
align-items: center;
display: flex;
.title {
line-height: 1rem;
font-weight: 600;
}
.copy_action {
.q-btn {
// background-color: white;
}
}
}
pre {
white-space: pre-wrap;
word-wrap: break-word;
margin-bottom: 0;
}
}
</style>
@@ -15,7 +15,6 @@
<template>
<div class="tabContent q-ma-md">
<div class="title" data-test="syslog-title-text">Syslog</div>
<div v-if="isLoading" class="flex column items-center justify-center">
<q-spinner color="primary" size="lg" />
<div>Loading Syslog</div>
@@ -579,20 +578,6 @@ export default defineComponent({
});
</script>
<style scoped lang="scss">
.tabContent {
background-color: rgba(136, 136, 136, 0.103);
// tab content bg color
padding: 1rem;
border-radius: 0.5rem;
.title {
text-transform: uppercase;
line-height: 1rem;
font-weight: 600;
}
}
</style>
<style lang="scss">
.syslog-inputs {
.q-field__bottom {
+1 -32
View File
@@ -16,7 +16,6 @@
<template>
<div class="tabContent q-ma-md">
<div class="tabContent__head">
<div class="title" data-test="fluentd-title-text">syslog-ng</div>
<div class="copy_action">
<q-btn
data-test="fluentd-copy-btn"
@@ -49,8 +48,7 @@ log {
source(src);
destination(d_openobserve_http);
flags(flow-control);
};
</pre
};</pre
>
</div>
</template>
@@ -99,32 +97,3 @@ export default defineComponent({
},
});
</script>
<style scoped lang="scss">
.tabContent {
background-color: rgba(136, 136, 136, 0.103);
// tab content bg color
padding: 1rem 1.25rem 0.5rem;
border-radius: 0.5rem;
&__head {
justify-content: space-between;
text-transform: uppercase;
align-items: center;
display: flex;
.title {
line-height: 1rem;
font-weight: 600;
}
.copy_action {
.q-btn {
// background-color: white;
}
}
}
pre {
white-space: pre-wrap;
word-wrap: break-word;
margin-bottom: 0;
}
}
</style>
@@ -16,7 +16,6 @@
<template>
<div class="tabContent q-ma-md">
<div class="tabContent__head">
<div class="title" data-test="vector-title-text">Vector</div>
<div class="copy_action">
<q-btn
data-test="vector-copy-btn"
@@ -91,32 +90,3 @@ export default defineComponent({
},
});
</script>
<style scoped lang="scss">
.tabContent {
background-color: rgba(136, 136, 136, 0.103);
// tab content bg color
padding: 1rem 1.25rem 0.5rem;
border-radius: 0.5rem;
&__head {
justify-content: space-between;
text-transform: uppercase;
align-items: center;
display: flex;
.title {
line-height: 1rem;
font-weight: 600;
}
.copy_action {
.q-btn {
// background-color: white;
}
}
}
pre {
white-space: pre-wrap;
word-wrap: break-word;
margin-bottom: 0;
}
}
</style>
@@ -16,7 +16,6 @@
<template>
<div class="tabContent q-ma-md">
<div class="tabContent__head">
<div class="title" data-test="vector-title-text">OTEL Collector</div>
<div class="copy_action">
<q-btn
data-test="traces-copy-btn"
@@ -37,8 +36,7 @@ exporters:
currOrgIdentifier
}}/prometheus/api/v1/write
headers:
Authorization: Basic {{ accessKey }}
</pre>
Authorization: Basic {{ accessKey }}</pre>
</div>
</template>
@@ -93,32 +91,3 @@ export default defineComponent({
},
});
</script>
<style scoped lang="scss">
.tabContent {
background-color: rgba(136, 136, 136, 0.103);
// tab content bg color
padding: 1rem 1.25rem 0.5rem;
border-radius: 0.5rem;
&__head {
justify-content: space-between;
text-transform: uppercase;
align-items: center;
display: flex;
.title {
line-height: 1rem;
font-weight: 600;
}
.copy_action {
.q-btn {
// background-color: white;
}
}
}
pre {
white-space: pre-wrap;
word-wrap: break-word;
margin-bottom: 0;
}
}
</style>
@@ -16,9 +16,6 @@
<template>
<div class="tabContent q-ma-md">
<div class="tabContent__head">
<div class="title" data-test="vector-title-text">
Prometheus Remote Write
</div>
<div class="copy_action">
<q-btn
data-test="traces-copy-btn"
@@ -37,8 +34,7 @@ remote_write:
- url: {{ endpoint.url }}/api/{{ currOrgIdentifier }}/prometheus/api/v1/write
basic_auth:
username: {{ currUserEmail }}
password: {{ store.state.organizationData.organizationPasscode }}
</pre>
password: {{ store.state.organizationData.organizationPasscode }}</pre>
</div>
<div>
<a
@@ -105,32 +101,3 @@ export default defineComponent({
},
});
</script>
<style scoped lang="scss">
.tabContent {
background-color: rgba(136, 136, 136, 0.103);
// tab content bg color
padding: 1rem 1.25rem 0.5rem;
border-radius: 0.5rem;
&__head {
justify-content: space-between;
text-transform: uppercase;
align-items: center;
display: flex;
.title {
line-height: 1rem;
font-weight: 600;
}
.copy_action {
.q-btn {
// background-color: white;
}
}
}
pre {
white-space: pre-wrap;
word-wrap: break-word;
margin-bottom: 0;
}
}
</style>
@@ -16,7 +16,6 @@
<template>
<div class="tabContent q-ma-md">
<div class="tabContent__head">
<div class="title" data-test="vector-title-text">Telegraf</div>
<div class="copy_action">
<q-btn
data-test="traces-copy-btn"
@@ -41,8 +40,7 @@
Content-Type = "application/x-protobuf"
Content-Encoding = "snappy"
X-Prometheus-Remote-Write-Version = "0.1.0"
Authorization = "Basic {{ accessKey }}"
</pre>
Authorization = "Basic {{ accessKey }}"</pre>
</div>
</template>
@@ -97,32 +95,3 @@ export default defineComponent({
},
});
</script>
<style scoped lang="scss">
.tabContent {
background-color: rgba(136, 136, 136, 0.103);
// tab content bg color
padding: 1rem 1.25rem 0.5rem;
border-radius: 0.5rem;
&__head {
justify-content: space-between;
text-transform: uppercase;
align-items: center;
display: flex;
.title {
line-height: 1rem;
font-weight: 600;
}
.copy_action {
.q-btn {
// background-color: white;
}
}
}
pre {
white-space: pre-wrap;
word-wrap: break-word;
margin-bottom: 0;
}
}
</style>
@@ -15,28 +15,22 @@
<template>
<div class="q-ma-md" :key="rumToken">
<div class="title" data-test="vector-title-text">RUM</div>
<div v-if="rumToken">
<copy-content
:displayContent="`Client Token: ` + rumToken"
:content="rumToken"
></copy-content>
<div class="text-h6 q-mt-md" data-test="rumweb-title-text">
<div class="text-h6 q-mt-xs" data-test="rumweb-title-text">
{{ t("ingestion.npmStepTitle") }}
</div>
<q-separator class="q-my-sm"></q-separator>
<div class="text-subtitle1 q-mt-md" v-html="npmStep1"></div>
<div class="text-subtitle1 q-mt-xs" v-html="npmStep1"></div>
<copy-content
content="npm i @openobserve/browser-rum @openobserve/browser-logs"
></copy-content>
<br />
<div class="text-subtitle1 q-mt-md" v-html="npmStep2"></div>
<div class="text-subtitle1 q-mt-xs" v-html="npmStep2"></div>
<copy-content :content="initConfiguration"></copy-content>
</div>
<div v-else class="q-mt-md">
<div v-else class="q-mt-xs">
{{ t("ingestion.generateRUMTokenMessage") }}
</div>
</div>
@@ -188,32 +182,3 @@ openobserveRum.startSessionReplayRecording();`;
},
});
</script>
<style scoped lang="scss">
.tabContent {
background-color: rgba(136, 136, 136, 0.103);
// tab content bg color
padding: 10px 20px;
border-radius: 0.5rem;
&__head {
justify-content: space-between;
text-transform: uppercase;
align-items: center;
display: flex;
.title {
line-height: 1rem;
font-weight: 600;
}
.copy_action {
.q-btn {
// background-color: white;
}
}
}
pre {
white-space: pre-wrap;
word-wrap: break-word;
margin: 0;
}
}
</style>
@@ -1,8 +1,13 @@
<template>
<div class="q-pa-md">
<div class="text-subtitle1 text-bold q-mt-md q-pl-xs">OTLP Http</div>
<div class="text-subtitle1 text-bold q-mt-md q-pl-xs">OTLP HTTP</div>
<ContentCopy class="q-mt-sm" :content="getOtelHttpConfig" />
</div>
<div class="q-pa-md">
<div class="text-subtitle1 text-bold q-mt-md q-pl-xs">OTLP gRPC</div>
<div class="title" data-test="vector-title-text">(<b>Note:</b> Only available for single node. Not supported in distributed mode.)</div>
<ContentCopy class="q-mt-sm" :content="getOtelGrpcConfig" />
</div>
</template>
<script setup lang="ts">
@@ -1,26 +1,25 @@
<template>
<div class="q-pa-md">
<div class="text-subtitle2 q-pb-sm">
<div class="text-subtitle1 q-pb-sm">
You need minimum PowerShell 6 to run the install script. you can check
your PowerShell version by running
<code
class="q-px-xs q-py-xs text-subtitle2"
class="q-px-xs q-py-xs text-subtitle1"
style="border-radius: 4px"
>$PSVersionTable.PSVersion</code
>
in your terminal.
</div>
<div>You should see something like this:</div>
<div class="text-subtitle1">You should see something like this:</div>
<pre
class="notranslate q-px-md q-py-md text-body"
>PS C:\<span class="pl-k">&gt;</span> <span class="pl-c1">$PSVersionTable<span class="pl-smi">.PSVersion</span></span>
Major Minor Patch PreReleaseLabel BuildLabel
<span class="pl-k">-----</span> <span class="pl-k">-----</span> <span class="pl-k">-----</span> <span class="pl-k">---------------</span> <span class="pl-k">----------</span>
<span class="pl-c1">7</span> <span class="pl-c1">3</span> <span class="pl-c1">7</span>
</pre>
<div class="text-subtitle2">Major should be at least 6.</div>
<div class="text-subtitle2 q-pt-sm">
<span class="pl-c1">7</span> <span class="pl-c1">3</span> <span class="pl-c1">7</span></pre>
<div class="text-subtitle1">Major should be at least 6.</div>
<div class="text-subtitle1 q-pt-sm">
You can download and install the latest version of powershell from
<a
target="_blank"
@@ -36,7 +36,7 @@
},
}"
:icon="'img:' + getImageURL('images/ingestion/otlp.svg')"
label="Open Telemetry"
label="OpenTelemetry"
content-class="tab_content"
/>
</q-tabs>
@@ -14,27 +14,47 @@
-->
<template>
<div class="title q-pl-md q-pt-md" data-test="vector-title-text"><b>OTLP HTTP</b></div>
<div class="tabContent q-ma-md">
<div class="tabContent__head">
<div class="title" data-test="vector-title-text">Traces / OTLP</div>
<div class="copy_action">
<q-btn
data-test="traces-copy-btn"
flat
round
size="0.5rem"
padding="0.6rem"
color="grey"
icon="content_copy"
@click="$emit('copy-to-clipboard-fn', copyTracesContent)"
@click="$emit('copy-to-clipboard-fn', copyHTTPTracesContent)"
/>
</div>
</div>
<pre ref="copyTracesContent" data-test="traces-content-text">
<pre ref="copyHTTPTracesContent" data-test="traces-http-content-text">
HTTP Endpoint: {{ endpoint.url }}/api/{{ currOrgIdentifier }}/traces
Authorization: Basic {{ accessKey }}
</pre
>
Authorization: Basic {{ accessKey }}</pre>
</div>
<div class="title q-pl-md q-pt-md" data-test="vector-title-text"><b>OTLP gRPC</b> <br />(<b>Note:</b> Only available for single node. Not supported in distributed mode.)</div>
<div class="tabContent q-ma-md">
<div class="tabContent__head">
<div class="copy_action">
<q-btn
data-test="traces-copy-btn"
flat
round
color="grey"
icon="content_copy"
@click="$emit('copy-to-clipboard-fn', copyGRPCTracesContent)"
/>
</div>
</div>
<pre ref="copyGRPCTracesContent" data-test="traces-grpc-content-text">
endpoint: {{ endpoint.host }}
headers:
Authorization: "Basic {{ accessKey }}"
organization: {{ currOrgIdentifier }}
stream-name: default
tls:
insecure: {{endpoint.protocol == "https" ? false : true}}</pre>
</div>
</template>
@@ -77,44 +97,17 @@ export default defineComponent({
`${props.currUserEmail}:${store.state.organizationData.organizationPasscode}`
);
});
const copyTracesContent = ref(null);
const copyHTTPTracesContent = ref(null);
const copyGRPCTracesContent = ref(null);
return {
store,
config,
endpoint,
copyTracesContent,
copyHTTPTracesContent,
copyGRPCTracesContent,
accessKey,
getImageURL,
};
},
});
</script>
<style scoped lang="scss">
.tabContent {
background-color: rgba(136, 136, 136, 0.103);
// tab content bg color
padding: 1rem 1.25rem 0.5rem;
border-radius: 0.5rem;
&__head {
justify-content: space-between;
text-transform: uppercase;
align-items: center;
display: flex;
.title {
line-height: 1rem;
font-weight: 600;
}
.copy_action {
.q-btn {
// background-color: white;
}
}
}
pre {
white-space: pre-wrap;
word-wrap: break-word;
margin-bottom: 0;
}
}
</style>
@@ -164,6 +164,11 @@ const useIngestionRoutes = () => {
name: "ingestFromOtel",
component: OtelConfig,
},
{
path: "traces",
name: "ingestFromTraces",
component: OpenTelemetry,
},
{
path: "frontend-monitoring",
name: "frontendMonitoring",
+2 -2
View File
@@ -405,7 +405,7 @@ export default defineComponent({
{
title: t("menu.rum"),
icon: "devices",
link: "/rum/performance/overview",
link: "/rum",
},
{
title: t("menu.dashboard"),
@@ -425,7 +425,7 @@ export default defineComponent({
{
title: t("menu.ingestion"),
icon: outlinedFilterAlt,
link: "/ingestion/recommended/kubernetes",
link: "/ingestion",
},
{
title: t("menu.user"),
+2 -2
View File
@@ -100,7 +100,7 @@
class="q-px-none q-py-none"
>
<q-item class="list-head">
<q-item-section class="text-bold col-3">
<q-item-section class="text-bold col-3 ">
{{ t("search.sourceName") }}
</q-item-section>
<q-item-section class="text-bold col-9">
@@ -115,7 +115,7 @@
>
<q-item-section
:data-test="`log-detail-${value}-key`"
class="col-3 text-weight-regular"
class="col-3 text-weight-regular text-red-10"
>{{ value }}</q-item-section
>
<q-item-section
+40
View File
@@ -74,3 +74,43 @@
.q-position-engine {
z-index: 99998;
}
.tabContent {
background-color: rgba(136, 136, 136, 0.103);
// tab content bg color
padding: 0px 10px;
border-radius: 0.5rem;
&__head {
justify-content: end;
display: flex;
.title {
line-height: 1rem;
font-weight: bold;
font-size: 16px;
padding-top: 10px;
}
.copy_action {
.q-btn {
justify-content: end;
font-size: 8px;
padding: 10px 0px 0px 0px;
min-width: 0px;
min-height: 0px;
line-height: 0px;
float: inline-end;
position: absolute;
right: 30px;
}
}
}
pre {
font-size: 13px;
white-space: pre-wrap;
word-wrap: break-word;
margin: 0;
line-height: 20px;
padding-top: 5px;
padding-bottom: 5px;
max-width: 96%;
}
}