click house log trace

在click house日志平台增加一键跳转trace按钮

Versión del día 04/05/2023. Echa un vistazo a la versión más reciente.

// ==UserScript==
// @name         click house log trace
// @home-url     https://greasyfork.org/zh-CN/scripts/465054-click-house-log-trace
// @version      1.0
// @description  在click house日志平台增加一键跳转trace按钮
// @author       zwang57
// @match        http://es.ops.ctripcorp.com/*
// @match        http://es.ops.fws.qa.nt.ctripcorp.com/*
// @downloadURL
// @grant    GM_setClipboard
// @grant GM_getResourceText
// @grant GM_addStyle
// @license MIT
// @namespace http://tampermonkey.net/
// ==/UserScript==
(function () {
    'use strict';

    var baseUrl, divEnv
    if (document.domain == "es.ops.ctripcorp.com") {
        baseUrl = "http://bat.fx.ctripcorp.com/logview/"
        divEnv = 5
    } else if (document.domain == "es.ops.fws.qa.nt.ctripcorp.com") {
        baseUrl = "http://bat.fws.qa.nt.ctripcorp.com/logview/"
        divEnv = 3
    }

    //main loop
    setInterval(() => {
        var bodyXpath = `/html/body/div[3]/div[2]/div/div/div[${divEnv}]/div/div[2]/div[1]/div/div[2]/div[2]/div/div[2]/div/table`
        var bodyXpathResult = document.evaluate(bodyXpath, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null);
        if (bodyXpathResult !== null) {
            let body = bodyXpathResult.singleNodeValue;
            if (!body) return;
            body.classList.remove("table-hover");
        }
        for (let i = 1; i < 100; i++) {
            for (let j = 1; j < 20; j++) {
                //Field
                var xpath = `/html/body/div[3]/div[2]/div/div/div[${divEnv}]/div/div[2]/div[1]/div/div[2]/div[2]/div/div[2]/div/table/tbody[${i}]/tr[2]/td/table/tbody/tr[${j}]/td[1]`
                var xpathResult = document.evaluate(xpath, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null);
                if (xpathResult === null) {
                    return;
                }
                var key = xpathResult.singleNodeValue;
                if (key === null || !key) {
                    continue;
                }
                if (key.innerHTML === null) {
                    continue;
                }
                //Value
                xpath = `/html/body/div[3]/div[2]/div/div/div[${divEnv}]/div/div[2]/div[1]/div/div[2]/div[2]/div/div[2]/div/table/tbody[${i}]/tr[2]/td/table/tbody/tr[${j}]/td[3]`
                xpathResult = document.evaluate(xpath, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null);
                if (xpathResult === null) {
                    continue;
                }
                var value = xpathResult.singleNodeValue;
                if (value == null) continue;

                if (key.innerHTML === 'messageId') {
                    if (value.innerHTML && value.innerHTML.endsWith('</a>')) continue;
                    console.log(key.innerHTML, value.innerHTML)
                    value.innerHTML = `${value.innerHTML}<a target="_blank" href=${baseUrl}${value.innerHTML}> <button>trace</button></a>`
                }
            }
        }
    }, 2000)

})();