fix: fluentbit and logs
This commit is contained in:
@@ -472,13 +472,12 @@ export const saveBuildLog = async ({
|
|||||||
|
|
||||||
if (isDev) {
|
if (isDev) {
|
||||||
console.debug(`[${applicationId}] ${addTimestamp}`);
|
console.debug(`[${applicationId}] ${addTimestamp}`);
|
||||||
|
return await prisma.buildLog.create({
|
||||||
|
data: {
|
||||||
|
line: addTimestamp, buildId, time: Number(day().valueOf()), applicationId
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
// return await prisma.buildLog.create({
|
|
||||||
// data: {
|
|
||||||
// line: addTimestamp, buildId, time: Number(day().valueOf()), applicationId
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
|
|
||||||
return await got.post(`${fluentBitUrl}/${applicationId}_buildlog_${buildId}.csv`, {
|
return await got.post(`${fluentBitUrl}/${applicationId}_buildlog_${buildId}.csv`, {
|
||||||
json: {
|
json: {
|
||||||
line: encrypt(line)
|
line: encrypt(line)
|
||||||
|
@@ -163,9 +163,9 @@
|
|||||||
>
|
>
|
||||||
{#each logs as log}
|
{#each logs as log}
|
||||||
{#if fromDb}
|
{#if fromDb}
|
||||||
<div>[{day.unix(log.time).format('HH:mm:ss.SSS')}] {log.line + '\n'}</div>
|
|
||||||
{:else}
|
|
||||||
<div>{log.line + '\n'}</div>
|
<div>{log.line + '\n'}</div>
|
||||||
|
{:else}
|
||||||
|
<div>[{day.unix(log.time).format('HH:mm:ss.SSS')}] {log.line + '\n'}</div>
|
||||||
{/if}
|
{/if}
|
||||||
{/each}
|
{/each}
|
||||||
</div>
|
</div>
|
||||||
|
@@ -23,7 +23,6 @@
|
|||||||
export let application: any;
|
export let application: any;
|
||||||
export let buildCount: any;
|
export let buildCount: any;
|
||||||
import { page } from '$app/stores';
|
import { page } from '$app/stores';
|
||||||
console.log(builds[0].createdAt);
|
|
||||||
import { addToast } from '$lib/store';
|
import { addToast } from '$lib/store';
|
||||||
import BuildLog from './_BuildLog.svelte';
|
import BuildLog from './_BuildLog.svelte';
|
||||||
import { get, post } from '$lib/api';
|
import { get, post } from '$lib/api';
|
||||||
@@ -31,35 +30,52 @@
|
|||||||
import { changeQueryParams, dateOptions, errorNotification, asyncSleep } from '$lib/common';
|
import { changeQueryParams, dateOptions, errorNotification, asyncSleep } from '$lib/common';
|
||||||
import Tooltip from '$lib/components/Tooltip.svelte';
|
import Tooltip from '$lib/components/Tooltip.svelte';
|
||||||
import { day } from '$lib/dayjs';
|
import { day } from '$lib/dayjs';
|
||||||
|
import { onDestroy, onMount } from 'svelte';
|
||||||
|
const { id } = $page.params;
|
||||||
|
|
||||||
|
let loadBuildLogsInterval: any = null;
|
||||||
let buildId: any;
|
let buildId: any;
|
||||||
|
|
||||||
let skip = 0;
|
let skip = 0;
|
||||||
let noMoreBuilds = buildCount < 5 || buildCount <= skip;
|
let noMoreBuilds = buildCount < 5 || buildCount <= skip;
|
||||||
const { id } = $page.params;
|
|
||||||
let preselectedBuildId = $page.url.searchParams.get('buildId');
|
let preselectedBuildId = $page.url.searchParams.get('buildId');
|
||||||
if (preselectedBuildId) buildId = preselectedBuildId;
|
if (preselectedBuildId) buildId = preselectedBuildId;
|
||||||
|
|
||||||
async function updateBuildStatus({ detail }: { detail: any }) {
|
onMount(async () => {
|
||||||
const { status } = detail;
|
getBuildLogs();
|
||||||
if (status !== 'running') {
|
loadBuildLogsInterval = setInterval(() => {
|
||||||
try {
|
getBuildLogs();
|
||||||
const data = await get(`/applications/${id}/logs/build?buildId=${buildId}`);
|
}, 2000);
|
||||||
builds = builds.filter((build: any) => {
|
|
||||||
if (build.id === data.builds[0].id) {
|
});
|
||||||
build.status = data.builds[0].status;
|
onDestroy(() => {
|
||||||
}
|
clearInterval(loadBuildLogsInterval);
|
||||||
return build;
|
});
|
||||||
});
|
async function getBuildLogs() {
|
||||||
} catch (error) {
|
const response = await get(`/applications/${$page.params.id}/logs/build?skip=0`);
|
||||||
return errorNotification(error);
|
builds = response.builds;
|
||||||
}
|
|
||||||
} else {
|
|
||||||
builds = builds.filter((build: any) => {
|
|
||||||
if (build.id === buildId) build.status = status;
|
|
||||||
return build;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
// async function updateBuildStatus({ detail }: { detail: any }) {
|
||||||
|
// const { status } = detail;
|
||||||
|
// if (status !== 'running') {
|
||||||
|
// try {
|
||||||
|
// const data = await get(`/applications/${id}/logs/build?buildId=${buildId}`);
|
||||||
|
// builds = builds.filter((build: any) => {
|
||||||
|
// if (build.id === data.builds[0].id) {
|
||||||
|
// build.status = data.builds[0].status;
|
||||||
|
// }
|
||||||
|
// return build;
|
||||||
|
// });
|
||||||
|
// } catch (error) {
|
||||||
|
// return errorNotification(error);
|
||||||
|
// }
|
||||||
|
// } else {
|
||||||
|
// builds = builds.filter((build: any) => {
|
||||||
|
// if (build.id === buildId) build.status = status;
|
||||||
|
// return build;
|
||||||
|
// });
|
||||||
|
// }
|
||||||
|
// }
|
||||||
async function loadMoreBuilds() {
|
async function loadMoreBuilds() {
|
||||||
if (buildCount >= skip) {
|
if (buildCount >= skip) {
|
||||||
skip = skip + 5;
|
skip = skip + 5;
|
||||||
@@ -198,7 +214,7 @@
|
|||||||
{#if build.status === 'running'}
|
{#if build.status === 'running'}
|
||||||
<div>
|
<div>
|
||||||
<span class="font-bold text-xl"
|
<span class="font-bold text-xl"
|
||||||
>{(day().utc().diff(day(build.createdAt)) / 1000).toFixed(0)}s</span
|
>{day(build.updatedAt).utc().diff(day(build.createdAt)) / 1000}s</span
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
{:else}
|
{:else}
|
||||||
@@ -233,7 +249,7 @@
|
|||||||
<div class="flex-1 md:w-96">
|
<div class="flex-1 md:w-96">
|
||||||
{#if buildId}
|
{#if buildId}
|
||||||
{#key buildId}
|
{#key buildId}
|
||||||
<svelte:component this={BuildLog} {buildId} on:updateBuildStatus={updateBuildStatus} />
|
<svelte:component this={BuildLog} {buildId} />
|
||||||
{/key}
|
{/key}
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
|
@@ -2,12 +2,10 @@ version: '3.8'
|
|||||||
|
|
||||||
services:
|
services:
|
||||||
fluent-bit:
|
fluent-bit:
|
||||||
image: fluent/fluent-bit:1.9.8
|
image: coollabsio/coolify-fluent-bit:1.0.0
|
||||||
container_name: coolify-fluentbit
|
container_name: coolify-fluentbit
|
||||||
volumes:
|
volumes:
|
||||||
- ./logs:/logs
|
- ./logs:/logs
|
||||||
- ./others/fluentbit/fluent-bit.conf:/fluent-bit/etc/fluent-bit.conf
|
|
||||||
- ./others/fluentbit/parser.conf:/fluent-bit/etc/parser.conf
|
|
||||||
ports:
|
ports:
|
||||||
- "24224:24224"
|
- "24224:24224"
|
||||||
networks:
|
networks:
|
||||||
|
@@ -22,7 +22,7 @@ services:
|
|||||||
networks:
|
networks:
|
||||||
- coolify-infra
|
- coolify-infra
|
||||||
fluent-bit:
|
fluent-bit:
|
||||||
image: coollabsio/coolify-fluent-bit:1.9.8
|
image: coollabsio/coolify-fluent-bit:1.0.0
|
||||||
container_name: coolify-fluentbit
|
container_name: coolify-fluentbit
|
||||||
volumes:
|
volumes:
|
||||||
- 'coolify-logs:/app/logs'
|
- 'coolify-logs:/app/logs'
|
||||||
|
Reference in New Issue
Block a user