JSPM

loki-log-viewer

0.1.2
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 1
  • Score
    100M100P100Q12838F
  • License MIT

Vue 3组件,用于查询和显示Loki日志

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