Package Exports
- loki-log-viewer
Readme
Loki Log Viewer
一个基于Vue 3的Loki日志查询和显示组件,提供友好的用户界面来查询、过滤和查看Loki日志系统中的日志。
特性
- 基于Vue 3和Element Plus构建
- 使用xterm.js提供终端风格的日志显示
- 支持实时日志查询和刷新
- 支持时间范围选择
- 支持关键词过滤
- 支持日志下载
- 支持多个命名空间/Pod组合的查询
- 可自定义外观和行为
安装
npm install loki-log-viewer
# 或
yarn add loki-log-viewer
使用方法
基本用法
<template>
<div style="height: 600px;">
<LokiLogViewer
namespace="default"
pod="my-app-pod"
lokiApiBaseUrl="http://loki-service:3100"
/>
</div>
</template>
<script setup>
import { LokiLogViewer } from 'loki-log-viewer';
import 'loki-log-viewer/dist/index.css';
</script>
多命名空间/Pod组合
<template>
<div style="height: 600px;">
<LokiLogViewer
:namespacePodPairs="[
{ namespace: 'default', pod: 'app-pod-1', displayName: '应用1' },
{ namespace: 'monitoring', pod: 'app-pod-2', displayName: '应用2' }
]"
lokiApiBaseUrl="http://loki-service:3100"
/>
</div>
</template>
<script setup>
import { LokiLogViewer } from 'loki-log-viewer';
import 'loki-log-viewer/dist/style.css';
</script>
自定义配置
<template>
<div style="height: 600px;">
<LokiLogViewer
namespace="default"
pod="my-app-pod"
lokiApiBaseUrl="http://loki-service:3100"
title="应用日志查看器"
:autoRefreshInterval="10000"
:defaultTimeRange="30"
:terminalOptions="{
fontSize: 14,
theme: {
background: '#000000',
foreground: '#ffffff'
}
}"
@logs-loaded="handleLogsLoaded"
@error="handleError"
@live-mode-change="handleLiveModeChange"
/>
</div>
</template>
<script setup>
import { LokiLogViewer } from 'loki-log-viewer';
import 'loki-log-viewer/dist/style.css';
const handleLogsLoaded = (logs) => {
console.log(`加载了 ${logs.length} 条日志`);
};
const handleError = (error) => {
console.error('日志查询出错:', error);
};
const handleLiveModeChange = (isLive) => {
console.log('实时模式状态:', isLive);
};
</script>
属性
属性名 | 类型 | 默认值 | 说明 |
---|---|---|---|
title | String | 'Loki日志查询工具' | 组件标题 |
height | String/Number | '100%' | 组件高度 |
width | String/Number | '100%' | 组件宽度 |
namespace | String | - | 单个命名空间(与pod一起使用) |
pod | String | - | 单个Pod名称(与namespace一起使用) |
namespacePodPairs | Array | - | 多个命名空间和Pod组合 |
terminalOptions | Object | {} | 终端配置选项 |
autoRefreshInterval | Number | 5000 | 实时模式刷新间隔(毫秒) |
defaultTimeRange | Number | 60 | 默认时间范围(分钟) |
lokiApiBaseUrl | String | - | Loki API基础URL |
showDownloadButton | Boolean | true | 是否显示下载按钮 |
showLiveModeButton | Boolean | true | 是否显示实时模式按钮 |
showClearButton | Boolean | true | 是否显示清空按钮 |
customClass | String | '' | 自定义CSS类名 |
事件
事件名 | 参数 | 说明 |
---|---|---|
logs-loaded | logs: string[] | 日志加载完成时触发 |
error | error: any | 发生错误时触发 |
live-mode-change | isLive: boolean | 实时模式状态变更时触发 |
方法
可以通过ref引用访问组件实例方法:
方法名 | 参数 | 说明 |
---|---|---|
queryLogs | - | 手动触发日志查询 |
clearTerminal | - | 清空终端内容 |
toggleLiveMode | - | 切换实时模式状态 |
downloadLogs | - | 下载当前日志 |
switchNamespacePodPair | index: number | 切换当前选中的namespace/pod组合 |
许可证
MIT