Showing preview only (581K chars total). Download the full file or copy to clipboard to get everything.
Repository: slanatech/dashblocks-template
Branch: master
Commit: 20ae3a908c56
Files: 85
Total size: 553.3 KB
Directory structure:
gitextract_2_g3etwt/
├── .editorconfig
├── .eslintignore
├── .github/
│ ├── FUNDING.yml
│ └── workflows/
│ └── main.yml
├── .gitignore
├── .prettierrc
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── babel.config.js
├── cypress.json
├── package.json
├── public/
│ ├── googleee01dc033d7bbca2.html
│ └── index.html
├── scripts/
│ └── demodeploy.sh
├── src/
│ ├── App.vue
│ ├── components/
│ │ ├── menu/
│ │ │ ├── menudrawer.vue
│ │ │ ├── menulist.vue
│ │ │ ├── menulistitem.vue
│ │ │ └── menulistitemex.vue
│ │ ├── settings/
│ │ │ ├── colorschemeselector.vue
│ │ │ └── settings.vue
│ │ ├── tables/
│ │ │ ├── htable.vue
│ │ │ ├── itable.vue
│ │ │ └── ptable.vue
│ │ └── user/
│ │ ├── message.vue
│ │ ├── messages.vue
│ │ └── userinfo.vue
│ ├── dashboards/
│ │ ├── ChartJsShowcase.json
│ │ ├── dashfive.json
│ │ ├── dashfour.json
│ │ ├── dashsix.json
│ │ └── dashthree.json
│ ├── data/
│ │ ├── ChartJsShowcase.json
│ │ ├── api.json
│ │ ├── apioperation.json
│ │ ├── errors.json
│ │ ├── hitsdata.json
│ │ ├── iconsmdiv5.json
│ │ ├── itemstabledata.json
│ │ ├── ptabledata.json
│ │ ├── requests.json
│ │ └── summary.json
│ ├── layouts/
│ │ └── mainlayout.vue
│ ├── main.js
│ ├── mixins/
│ │ ├── demodashboard.js
│ │ └── vgtmethods.js
│ ├── pages/
│ │ └── login.vue
│ ├── quasar.js
│ ├── router.js
│ ├── store/
│ │ ├── modules/
│ │ │ └── layout.js
│ │ └── store.js
│ ├── styles/
│ │ ├── quasar.scss
│ │ ├── quasar.variables.scss
│ │ ├── textbgcolors.scss
│ │ ├── ubbox.scss
│ │ ├── ubcode.scss
│ │ └── vgt.scss
│ ├── utils.js
│ └── views/
│ ├── About.vue
│ ├── ChartJsShowcase.vue
│ ├── DashblocksShowcase.vue
│ ├── Dygraphs.vue
│ ├── Home.vue
│ ├── SampleDashboard.vue
│ ├── apiop.vue
│ ├── errors.vue
│ ├── forms.vue
│ ├── materialicons.vue
│ ├── mdi.vue
│ ├── observability.vue
│ ├── quasartable.vue
│ ├── requests.vue
│ ├── summary.vue
│ ├── tables.vue
│ ├── timeline.vue
│ ├── typography.vue
│ └── vuegoodtable.vue
├── tests/
│ ├── e2e/
│ │ ├── .eslintrc.js
│ │ ├── plugins/
│ │ │ └── index.js
│ │ ├── specs/
│ │ │ └── test.js
│ │ └── support/
│ │ ├── commands.js
│ │ └── index.js
│ └── unit/
│ └── .eslintrc.js
└── vue.config.js
================================================
FILE CONTENTS
================================================
================================================
FILE: .editorconfig
================================================
# EditorConfig helps developers define and maintain consistent
# coding styles between different editors and IDEs
# editorconfig.org
root = true
[*]
# Change these settings to your own preference
indent_style = space
indent_size = 2
# We recommend you to keep these unchanged
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
[*.md]
trim_trailing_whitespace = false
================================================
FILE: .eslintignore
================================================
dist
node_modules
public
tests
================================================
FILE: .github/FUNDING.yml
================================================
github: sv2
================================================
FILE: .github/workflows/main.yml
================================================
name: CI
# Controls when the action will run. Triggers the workflow on push or pull request
# events but only for the master branch
on:
push:
branches: [ master ]
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
build_and_publish:
# The type of runner that the job will run on
runs-on: ubuntu-latest
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v2
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- uses: actions/cache@v1
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
# Runs a set of commands using the runners shell
- name: Install NPM packages
run: yarn install
- name: Build
run: yarn run build
- name: Deploy
uses: JamesIves/github-pages-deploy-action@releases/v3
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BRANCH: gh-pages
FOLDER: dist
================================================
FILE: .gitignore
================================================
.DS_Store
node_modules
/dist
/demo
/tests/e2e/videos/
/tests/e2e/screenshots/
# local env files
.env.local
.env.*.local
# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
================================================
FILE: .prettierrc
================================================
{
"singleQuote": true,
"printWidth": 160
}
================================================
FILE: CONTRIBUTING.md
================================================
# Contributing
Want to contribute to **dashblocks-template**? Awesome!
There are many ways you can contribute:
* by reviewing
* by reporting bugs
* by suggesting improvements and new features
* by writing or editing documentation
* by writing code ( no patch is too small )
* by closing issues
## Proposing pull requests
Pull requests are very welcome. Note that if you are going to propose drastic changes, be sure to open an issue for discussion first, to make sure that your PR will be accepted before you spend effort coding it.
Inspired by https://github.com/middleman/middleman-heroku/blob/master/CONTRIBUTING.md
================================================
FILE: LICENSE
================================================
The MIT License (MIT)
Copyright (c) 2019-present slana.tech
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
================================================
FILE: README.md
================================================
<p align="center">
<img src="https://github.com/slanatech/dashblocks-template/blob/master/screenshots/dblogo.png?raw=true" height="200" width="200" alt="https://dashblocks.io"/>
</p>
# Dashblocks Vue Material Admin Template | [DEMO](https://slanatech.github.io/dashblocks-template)

<img src="https://img.shields.io/npm/v/quasar.svg?label=quasar">
<img src="https://img.shields.io/npm/v/dashblocks.svg?label=dashblocks">

### Enable Analytics in your Vue App with [Dashblocks](https://github.com/slanatech/dashblocks)
[Live Demo](https://slanatech.github.io/dashblocks-template)

Dashblocks Vue Material Admin Template is build based on [Quasar Framework](https://quasar.dev/), [Vuex](https://vuex.vuejs.org/installation.html), [Vuejs](https://vuejs.org/) and [Dashblocks](https://github.com/slanatech/dashblocks).
We focus on providing beautiful interactive Dashboards out of the box, and helping to enable In-App Analytics in your Apps.
[Dashblocks](https://github.com/slanatech/dashblocks) enables simple and streamlined way to quickly add awesome Dashboards in your app:
* Use declarative approach to define a dashboard. The whole dashboard is just one JS object (or JSON)
* Provide reasonable out of the box defaults for all chart types, such as colors
* Support dark / light modes out of the box
* Enable interactivity by providing event handling on dashboard level
* Streamline dynamic updates of dashboard data, for example based on user interaction with dashboard
* Even dynamically generate Dashboard itself based on the data - thanks to declarative approach
## Quick start
Clone `dashblocks-template` repo:
```bash
$ git clone https://github.com/slanatech/dashblocks-template.git
```
Install dependencies:
```bash
$ cd dashblocks-template
$ yarn install
```
Run `serve`:
```bash
$ yarn run serve
```
`dashblocks-template` is set up using [vue-cli](https://github.com/vuejs/vue-cli), you will see standard `vue-cli` scripts in `package.json`: `serve`, `build` ...
[Quasar Framework](https://quasar.dev/) is configured using Vue CLI Quasar Plugin.
## Enhancements and Bug Reports
If you find a bug, or have an enhancement in mind please post [issues](https://github.com/slanatech/dashblocks-template/issues)
test1 test2 test3
## License
[MIT](LICENSE)
================================================
FILE: babel.config.js
================================================
module.exports = {
presets: ['@vue/cli-plugin-babel/preset'],
plugins: [
[
'transform-imports',
{
quasar: {
transform: 'quasar/dist/babel-transforms/imports.js',
preventFullImport: true
}
}
]
]
};
================================================
FILE: cypress.json
================================================
{
"pluginsFile": "tests/e2e/plugins/index.js"
}
================================================
FILE: package.json
================================================
{
"name": "dashblocks-template",
"version": "0.5.4",
"private": true,
"author": "https://github.com/sv2",
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"test:unit": "vue-cli-service test:unit",
"test:e2e": "vue-cli-service test:e2e",
"lint": "vue-cli-service lint",
"release": "release-it",
"release-ci": "release-it --ci"
},
"dependencies": {
"@quasar/extras": "^1.8.2",
"core-js": "^3.6.5",
"quasar": "^1.12.3",
"vue": "^2.6.11",
"vue-router": "^3.3.2",
"vuex": "^3.4.0"
},
"devDependencies": {
"@vue/cli-plugin-babel": "^4.3.1",
"@vue/cli-plugin-e2e-cypress": "^4.3.1",
"@vue/cli-plugin-eslint": "^4.3.1",
"@vue/cli-plugin-unit-jest": "^4.3.1",
"@vue/cli-service": "^4.3.1",
"@vue/eslint-config-prettier": "^6.0.0",
"@vue/test-utils": "^1.0.0-beta.33",
"babel-core": "7.0.0-bridge.0",
"babel-eslint": "^10.1.0",
"babel-jest": "^24.9.0",
"babel-plugin-transform-imports": "1.5.0",
"dashblocks": "^0.5.35",
"eslint": "^6.8.0",
"eslint-plugin-prettier": "^3.1.3",
"eslint-plugin-vue": "^6.2.2",
"lint-staged": "^8.1.5",
"node-sass": "^4.13.1",
"release-it": "^13.5.4",
"sass-loader": "^8.0.2",
"vue-cli-plugin-quasar": "^2.0.0",
"vue-template-compiler": "^2.6.11",
"webpack-bundle-analyzer": "^3.6.0",
"ramda": "^0.27.0",
"vue-good-table": "^2.18.0"
},
"eslintConfig": {
"root": true,
"env": {
"node": true
},
"extends": [
"plugin:vue/essential",
"@vue/prettier"
],
"rules": {},
"parserOptions": {
"parser": "babel-eslint"
}
},
"postcss": {
"plugins": {
"autoprefixer": {}
}
},
"browserslist": [
"> 1%",
"last 2 versions"
],
"jest": {
"moduleFileExtensions": [
"js",
"jsx",
"json",
"vue"
],
"transform": {
"^.+\\.vue$": "vue-jest",
".+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$": "jest-transform-stub",
"^.+\\.jsx?$": "babel-jest"
},
"transformIgnorePatterns": [
"/node_modules/"
],
"moduleNameMapper": {
"^@/(.*)$": "<rootDir>/src/$1"
},
"snapshotSerializers": [
"jest-serializer-vue"
],
"testMatch": [
"**/tests/unit/**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)"
],
"testURL": "http://localhost/",
"watchPlugins": [
"jest-watch-typeahead/filename",
"jest-watch-typeahead/testname"
]
},
"bugs": {
"url": "https://github.com/slanatech/dashblocks-template/issues",
"email": "sv2@slana.tech"
},
"gitHooks": {
"pre-commit": "lint-staged"
},
"homepage": "https://github.com/slanatech/dashblocks-template",
"license": "MIT",
"lint-staged": {
"*.{js,vue}": [
"vue-cli-service lint",
"git add"
]
},
"release-it": {
"github": {
"release": true
},
"hooks": {
"after:release": "echo Successfully released ${name} v${version} to ${repo.repository}."
}
},
"repository": {
"type": "git",
"url": "https://github.com/slanatech/dashblocks-template"
}
}
================================================
FILE: public/googleee01dc033d7bbca2.html
================================================
google-site-verification: googleee01dc033d7bbca2.html
================================================
FILE: public/index.html
================================================
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title>dashblocks-template</title>
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.3.1/css/all.css" integrity="sha384-mzrmE5qonljUremFsqc01SB46JvROS7bZs3IO2EmfFsd15uHvIt+Y8vEf7N7fWAU" crossorigin="anonymous">
<link href='https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900|Material+Icons' rel="stylesheet">
</head>
<body>
<noscript>
<strong>We're sorry but dashblocks-template doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
</noscript>
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
</html>
================================================
FILE: scripts/demodeploy.sh
================================================
#!/bin/bash
# abort on errors
set -e
# navigate into the build output directory
cd demo
git init
git add -A
git commit -m 'deploy for github pages'
git push -f https://github.com/slanatech/dashblocks-template.git master:gh-pages
cd -
================================================
FILE: src/App.vue
================================================
<template>
<div id="app">
<router-view />
</div>
</template>
================================================
FILE: src/components/menu/menudrawer.vue
================================================
<template>
<q-drawer
ref="drawer"
show-if-above
:mini="miniState"
v-model="shown"
:side="side"
bordered
@on-layout="handleLayout"
:mini-to-overlay="miniToOverlay"
@mouseover="handleMouseOver"
@mouseout="handleMouseOut"
>
<div class="fit ub-box">
<!-- "height: 100px;" seem to address issue with flex: 1 1 auto scroll area on safari -->
<q-scroll-area class="ub-row ub-box-expand" style="height: 100px;">
<slot name="menu"></slot>
</q-scroll-area>
<!-- Mini toggle is not needed if below breakpoint -->
<div v-if="hasMiniToggle" class="ub-row ub-box-fixed">
<q-btn color="down1" :ripple="false" class="full-width" flat :icon="miniState ? 'chevron_right' : 'chevron_left'" size="md" @click="toggleMini" />
</div>
</div>
</q-drawer>
</template>
<script>
export default {
name: 'MenuDrawer',
components: {},
props: {
value: {
type: Boolean,
default: true
},
mini: {
type: Boolean,
default: true
},
autoExpand: {
type: Boolean,
default: false
},
side: {
type: String,
default: 'left'
}
},
data: function() {
return {
miniState: this.mini,
shown: this.value,
drawerBelowBreakpoint: false
};
},
computed: {
miniToOverlay: function() {
return this.autoExpand;
},
hasMiniToggle: function() {
return !this.drawerBelowBreakpoint && !this.autoExpand;
}
},
watch: {
value: function(val) {
this.shown = val;
},
shown: function(val) {
this.$emit('input', val);
},
mini: function(val) {
if (!this.autoExpand) {
this.setMini(val);
}
},
miniState: function(val) {
this.$emit('update:mini', val);
}
},
methods: {
resize(delay) {
this.$nextTick(() => {
setTimeout(() => {
window.dispatchEvent(new Event('resize'));
}, delay);
});
},
handleLayout(state) {
console.log(`handleLayout: ${state}`);
this.drawerBelowBreakpoint = this.$refs.drawer.belowBreakpoint;
this.resize(100);
},
toggleMini() {
this.miniState = !this.miniState;
this.resize(200);
},
setMini(mini) {
this.miniState = mini;
this.resize(200);
},
handleMouseOver() {
if (this.autoExpand) {
this.miniState = false;
}
},
handleMouseOut() {
if (this.autoExpand) {
this.miniState = true;
}
}
}
};
</script>
<style lang="scss">
/*
::-webkit-scrollbar {
width: 12px;
}
::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
border-radius: 10px;
}
::-webkit-scrollbar-thumb {
border-radius: 10px;
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.5);
}
*/
</style>
================================================
FILE: src/components/menu/menulist.vue
================================================
<template>
<q-list class="db-menu-list">
<div v-if="mode === 'expand'">
<menu-list-item
v-for="item in menuItems"
v-bind:key="item.id"
:item="item"
:collapsed="collapsed"
:active-class="activeClass"
@expansionItemClick="onExpansionItemClick(item)"
@itemExpanded="onItemExpanded(item)"
@itemCollapsed="onItemCollapsed(item)"
/>
</div>
<div v-else>
<menu-list-item-ex
v-for="item in menuItems"
v-bind:key="item.id"
:item="item"
:collapsed="collapsed"
:active-class="activeClass"
@expansionItemClick="onExpansionItemClick(item)"
@itemExpanded="onItemExpanded(item)"
@itemCollapsed="onItemCollapsed(item)"
/>
</div>
</q-list>
</template>
<script>
import MenuListItem from './menulistitem.vue';
import MenuListItemEx from './menulistitemex.vue';
export default {
name: 'MenuList',
components: { MenuListItem, MenuListItemEx },
props: {
menuItems: {
type: Array,
default: null
},
collapsed: {
type: Boolean,
default: false
},
activeClass: {
type: String,
default: ''
},
mode: {
type: String,
default: 'expand'
}
},
data: function() {
return {};
},
computed: {},
watch: {},
methods: {
onExpansionItemClick(item) {
this.$emit('expansionItemClick', item);
},
onItemExpanded(item) {
this.$emit('itemExpanded', item);
},
onItemCollapsed(item) {
this.$emit('itemCollapsed', item);
}
}
};
</script>
<style lang="scss">
.db-menu-list {
a,
a:hover {
text-decoration: none;
}
}
</style>
================================================
FILE: src/components/menu/menulistitem.vue
================================================
<template>
<q-expansion-item
v-if="item.items"
:icon="item.icon"
:label="item.title"
:caption="item.caption"
expand-separator
:class="`menuitem-ei-${item.id} ` + itemClass"
:active-class="itemActiveClass"
@click="onClick"
@show="onShow"
@hide="onHide"
>
<q-tooltip anchor="top right" self="center middle" :target="`.menuitem-ei-${item.id} i`">{{ item.title }}</q-tooltip>
<menu-list-item v-for="childItem in item.items" v-bind:key="childItem.id" :item="childItem" />
</q-expansion-item>
<q-item v-else clickable v-ripple v-bind:key="item.link" :to="item.link" exact :class="itemClass" :active-class="itemActiveClass">
<q-item-section avatar>
<!-- Workaround for badge, if desired to show when menu is collapsed
<div class="relative-position" style="width:25px;margin-left:2px">
<q-icon :name="item.icon" size="24px">
</q-icon>
<q-badge v-if="item.badge && !collapsed" :label="item.badge" floating/>
</div>-->
<q-icon v-if="item.icon" :name="item.icon"></q-icon>
<q-tooltip anchor="top right" self="center middle">
{{ item.title }}
</q-tooltip>
</q-item-section>
<q-item-section>
<q-item-label>{{ item.title }}</q-item-label>
<q-item-label v-if="item.caption" caption>{{ item.caption }}</q-item-label>
</q-item-section>
<q-item-section v-if="hasSide" side :top="isSideTop">
<q-badge v-if="item.badge" :color="item.badgeColor || 'primary'" :label="item.badge" />
<q-item-label v-if="item.sideCaption" caption>{{ item.sideCaption }}</q-item-label>
</q-item-section>
</q-item>
</template>
<script>
import { mapActions, mapState } from 'vuex';
export default {
name: 'MenuListItem',
props: {
item: {
type: Object,
default: null
},
collapsed: {
type: Boolean,
default: true
},
activeClass: {
type: String,
default: ''
}
},
data: function() {
return {};
},
computed: {
itemClass: function() {
return this.item.class ? this.item.class : '';
},
itemActiveClass: function() {
return this.item.activeClass ? this.item.activeClass : this.activeClass;
},
hasSide: function() {
return 'badge' in this.item || 'sideCaption' in this.item;
},
isSideTop: function() {
return 'caption' in this.item || 'sideCaption' in this.item;
}
},
watch: {},
methods: {
onClick(evt) {
this.$emit('expansionItemClick', evt);
},
onShow(evt) {
this.$emit('itemExpanded', evt);
},
onHide(evt) {
this.$emit('itemCollapsed', evt);
}
}
};
</script>
================================================
FILE: src/components/menu/menulistitemex.vue
================================================
<template>
<div v-if="item.items">
<q-item clickable v-ripple exact :class="itemClass" :active-class="itemActiveClass">
<q-item-section avatar>
<q-icon v-if="item.icon" :name="item.icon"></q-icon>
<q-tooltip anchor="top right" self="center middle">
{{ item.title }}
</q-tooltip>
</q-item-section>
<q-item-section @click="expanded = !expanded">
<q-item-label>{{ item.title }}</q-item-label>
<q-item-label v-if="item.caption" caption>{{ item.caption }}</q-item-label>
</q-item-section>
<q-item-section side :top="true">
<q-btn size="sm" round unelevated :icon="expanded ? 'mdi-chevron-up' : 'mdi-chevron-down'" @click="expanded = !expanded" />
</q-item-section>
</q-item>
<div v-if="expanded">
<menu-list-item-ex v-for="childItem in item.items" v-bind:key="childItem.id" :item="childItem" :icon-size="'xs'" />
</div>
</div>
<div v-else>
<q-item clickable v-ripple v-bind:key="item.link" :to="item.link" exact :class="itemClass" :active-class="itemActiveClass">
<q-item-section avatar>
<!-- Workaround for badge, if desired to show when menu is collapsed
<div class="relative-position" style="width:25px;margin-left:2px">
<q-icon :name="item.icon" size="24px">
</q-icon>
<q-badge v-if="item.badge && !collapsed" :label="item.badge" floating/>
</div>-->
<q-icon v-if="item.icon" :name="item.icon"></q-icon>
<q-tooltip anchor="top right" self="center middle">
{{ item.title }}
</q-tooltip>
</q-item-section>
<q-item-section style="margin-left: 10px;">
<q-item-label>{{ item.title }}</q-item-label>
<q-item-label v-if="item.caption" caption>{{ item.caption }}</q-item-label>
</q-item-section>
<q-item-section v-if="hasSide" side :top="isSideTop">
<q-badge v-if="item.badge" :color="item.badgeColor || 'primary'" :label="item.badge" />
<q-item-label v-if="item.sideCaption" caption>{{ item.sideCaption }}</q-item-label>
</q-item-section>
</q-item>
</div>
</template>
<script>
import { mapActions, mapState } from 'vuex';
export default {
name: 'MenuListItemEx',
props: {
item: {
type: Object,
default: null
},
collapsed: {
type: Boolean,
default: true
},
activeClass: {
type: String,
default: ''
},
insetLevel: {
type: Number,
default: 0
},
iconSize: {
type: String,
default: 'sm'
}
},
data: function() {
return {
expanded: false
};
},
computed: {
itemClass: function() {
return this.item.class ? this.item.class : '';
},
itemActiveClass: function() {
return this.item.activeClass ? this.item.activeClass : this.activeClass;
},
hasSide: function() {
return 'badge' in this.item || 'sideCaption' in this.item;
},
isSideTop: function() {
return 'caption' in this.item || 'sideCaption' in this.item;
}
},
watch: {},
methods: {
onClick(evt) {
this.$emit('expansionItemClick', evt);
},
onShow(evt) {
this.$emit('itemExpanded', evt);
},
onHide(evt) {
this.$emit('itemCollapsed', evt);
}
}
};
</script>
================================================
FILE: src/components/settings/colorschemeselector.vue
================================================
<template>
<q-card style="width: 100%;">
<q-card-section>
<q-input v-model="query" debounce="400" filled dense placeholder="Search Color Scheme" clearable>
<template v-slot:prepend>
<q-icon name="search" />
</template>
</q-input>
</q-card-section>
<q-card-section style="height: 300px;">
<q-scroll-area class="fit">
<q-list>
<q-item
v-for="scheme in filteredSchemes"
v-bind:key="scheme.name"
clickable
v-ripple
v-close-popup
active-class="bg-teal-1 text-grey-8"
@click="onSelect(scheme.name)"
>
<q-item-section avatar top>
<q-icon name="mdi-invert-colors" />
</q-item-section>
<q-item-section>
<q-item-label>{{ scheme.name }}</q-item-label>
<div>
<q-chip square size="sm">Light:</q-chip>
<q-chip square size="xs" :style="`background-color: ${scheme.light[0]}`"></q-chip>
<q-chip square size="xs" :style="`background-color: ${scheme.light[1]}`"></q-chip>
<q-chip square size="xs" :style="`background-color: ${scheme.light[2]}`"></q-chip>
<q-chip square size="xs" :style="`background-color: ${scheme.light[3]}`"></q-chip>
<q-chip square size="xs" :style="`background-color: ${scheme.light[4]}`"></q-chip>
</div>
<div>
<q-chip square size="sm">Dark :</q-chip>
<q-chip square size="xs" :style="`background-color: ${scheme.dark[0]}`"></q-chip>
<q-chip square size="xs" :style="`background-color: ${scheme.dark[1]}`"></q-chip>
<q-chip square size="xs" :style="`background-color: ${scheme.dark[2]}`"></q-chip>
<q-chip square size="xs" :style="`background-color: ${scheme.dark[3]}`"></q-chip>
<q-chip square size="xs" :style="`background-color: ${scheme.dark[4]}`"></q-chip>
</div>
<!--<q-item-label caption lines="1">{{ getScopeDescription(scope) }}</q-item-label>-->
</q-item-section>
</q-item>
</q-list>
</q-scroll-area>
</q-card-section>
<q-card-actions align="right">
<q-btn dense flat label="Cancel" color="primary" v-close-popup />
<!--<q-btn dense label="OK" color="primary" @click="testClick" />-->
</q-card-actions>
</q-card>
</template>
<script>
import { mapActions } from 'vuex';
import { dbColors } from 'dashblocks';
export default {
name: 'ColorSchemeSelector',
components: {},
props: {
value: {
type: String,
default: null
}
},
data() {
return {
query: '',
schemes: []
};
},
computed: {
filteredSchemes: function() {
return this.schemes.filter(s => this.isVisible(s.name));
},
dashboardColorScheme: {
get() {
return this.$store.state.layout.dashboardColorScheme;
},
set(value) {
this.setDashboardColorScheme({ dashboardColorScheme: value });
}
}
},
watch: {
query: function(value) {
//this.updateCellQuery({ id: this.cell.id, query: value });
}
},
mounted() {
this.initialize();
},
methods: {
...mapActions({
setDashboardColorScheme: 'layout/setDashboardColorScheme'
}),
initialize() {
let dbc = dbColors;
for (let schemeName of Object.keys(dbc.colorSchemes)) {
let colorScheme = dbc.colorSchemes[schemeName];
this.schemes.push({
name: schemeName,
light: colorScheme.light.slice(0, 5),
dark: colorScheme.dark.slice(0, 5)
});
// TODO grab all
}
},
isVisible(schemeName) {
let qlc = this.query.toLowerCase();
return schemeName.toLowerCase().indexOf(qlc) > -1;
},
onSelect(colorScheme) {
this.$emit('input', colorScheme);
}
}
};
</script>
================================================
FILE: src/components/settings/settings.vue
================================================
<template>
<div class="q-pa-md" style="max-width: 350px">
<q-bar class="bg-none">
Settings
<q-space />
<q-btn dense flat round icon="close" @click="onClose" />
</q-bar>
<q-list padding>
<!--<q-item tag="label" v-ripple>
<q-item-section side top>
<q-checkbox v-model="check1" />
</q-item-section>
<q-item-section>
<q-item-label>Notifications</q-item-label>
<q-item-label caption>
Notify me about updates to apps or games that I downloaded
</q-item-label>
</q-item-section>
</q-item>
<q-item tag="label" v-ripple>
<q-item-section side top>
<q-checkbox v-model="check2" />
</q-item-section>
<q-item-section>
<q-item-label>Sound</q-item-label>
<q-item-label caption>
Auto-update apps at anytime. Data charges may apply
</q-item-label>
</q-item-section>
</q-item>
<q-item tag="label" v-ripple>
<q-item-section side top>
<q-checkbox v-model="check3" />
</q-item-section>
<q-item-section>
<q-item-label>Auto-add widgets</q-item-label>
<q-item-label caption>
Automatically add home screen widgets
</q-item-label>
</q-item-section>
</q-item>
<q-separator spaced />
<q-item-label header>Notifications</q-item-label>
-->
<q-item tag="label" v-ripple>
<q-item-section>
<q-item-label>Dark Mode</q-item-label>
</q-item-section>
<q-item-section side>
<q-toggle v-model="dark" icon="brightness_medium" />
</q-item-section>
</q-item>
<q-item tag="label" v-ripple>
<q-item-section>
<q-item-label>Minimize Menu</q-item-label>
<q-item-label caption>Minimize menu sidebar</q-item-label>
</q-item-section>
<q-item-section side top>
<q-toggle v-model="menuMini" icon="menu" />
</q-item-section>
</q-item>
<q-item tag="label" v-ripple>
<q-item-section>
<q-item-label>Auto-Expand Menu</q-item-label>
<q-item-label caption>Auto-expand menu when hovering</q-item-label>
</q-item-section>
<q-item-section side top>
<q-toggle v-model="menuAutoExpand" icon="menu" />
</q-item-section>
</q-item>
<q-separator spaced />
<!--<q-item tag="label">
<q-item-section>
<q-select v-model="dashboardColorScheme" :options="colorSchemaOptions" label="Dashboard Color Schema" />
</q-item-section>
</q-item>-->
<q-item-label header style="padding-bottom: 0px;">Dashboard Color Scheme</q-item-label>
<q-item>
<q-item-section> </q-item-section>
<q-item-section side top>
<q-btn-dropdown
size="md"
align="right"
v-model="schemeSelectorShown"
outlined
flat
:label="dashboardColorScheme"
icon="mdi-invert-colors"
menu-self="center left"
>
<div style="width: 400px;">
<color-scheme-selector v-model="dashboardColorScheme"></color-scheme-selector>
</div>
</q-btn-dropdown>
<div>
<q-chip square size="sm">Light:</q-chip>
<q-chip square size="xs" :style="`background-color: ${lightColors[0]}`"></q-chip>
<q-chip square size="xs" :style="`background-color: ${lightColors[1]}`"></q-chip>
<q-chip square size="xs" :style="`background-color: ${lightColors[2]}`"></q-chip>
<q-chip square size="xs" :style="`background-color: ${lightColors[3]}`"></q-chip>
<q-chip square size="xs" :style="`background-color: ${lightColors[4]}`"></q-chip>
</div>
<div>
<q-chip square size="sm">Dark:</q-chip>
<q-chip square size="xs" :style="`background-color: ${darkColors[0]}`"></q-chip>
<q-chip square size="xs" :style="`background-color: ${darkColors[1]}`"></q-chip>
<q-chip square size="xs" :style="`background-color: ${darkColors[2]}`"></q-chip>
<q-chip square size="xs" :style="`background-color: ${darkColors[3]}`"></q-chip>
<q-chip square size="xs" :style="`background-color: ${darkColors[4]}`"></q-chip>
</div>
</q-item-section>
</q-item>
<q-separator spaced />
<q-item-label header>TODO Banner Colors, Backgounds</q-item-label>
<!--<q-separator spaced />
<q-item-label header>Other settings</q-item-label>
<q-item>
<q-item-section side>
<q-icon color="teal" name="volume_down" />
</q-item-section>
<q-item-section>
<q-slider v-model="volume" :min="0" :max="10" label color="teal" />
</q-item-section>
<q-item-section side>
<q-icon color="teal" name="volume_up" />
</q-item-section>
</q-item>
<q-item>
<q-item-section side>
<q-icon color="deep-orange" name="brightness_medium" />
</q-item-section>
<q-item-section>
<q-slider v-model="brightness" :min="0" :max="10" label color="deep-orange" />
</q-item-section>
</q-item>
<q-item>
<q-item-section side>
<q-icon color="primary" name="mic" />
</q-item-section>
<q-item-section>
<q-slider v-model="mic" :min="0" :max="50" label />
</q-item-section>
</q-item>-->
</q-list>
</div>
</template>
<script>
import { mapActions } from 'vuex';
import ColorSchemeSelector from './colorschemeselector.vue';
import { dbColors } from 'dashblocks';
export default {
name: 'Settings',
components: {
ColorSchemeSelector
},
props: {},
data() {
return {
schemeSelectorShown: false,
colorSchemaOptions: ['default', 'Grafana', 'Tableau', 'Diverging', 'Categorical', 'Warm', 'Cool', 'Calm', 'Fancy', 'Colorblind Friendly'],
lightColors: [],
darkColors: [],
check1: true,
check2: false,
check3: false,
notif1: true,
notif2: true,
notif3: false,
volume: 6,
brightness: 3,
mic: 8
};
},
computed: {
dark: {
get() {
return this.$store.state.layout.dark;
},
set(value) {
this.setDark({ dark: value });
}
},
menuAutoExpand: {
get() {
return this.$store.state.layout.menuAutoExpand;
},
set(value) {
this.setMenuAutoExpand({ menuAutoExpand: value });
}
},
menuMini: {
get() {
return this.$store.state.layout.menuMini;
},
set(value) {
this.setMenuMini({ menuMini: value });
}
},
dashboardColorScheme: {
get() {
return this.$store.state.layout.dashboardColorScheme;
},
set(value) {
this.setDashboardColorScheme({ dashboardColorScheme: value });
}
}
},
watch: {
dashboardColorScheme: function(val) {
this.initColors();
}
},
mounted() {
this.initColors();
},
methods: {
...mapActions({
setDark: 'layout/setDark',
setMenuAutoExpand: 'layout/setMenuAutoExpand',
setMenuMini: 'layout/setMenuMini',
setDashboardColorScheme: 'layout/setDashboardColorScheme'
}),
initColors() {
let colorScheme = dbColors.getColorScheme(this.dashboardColorScheme);
this.lightColors = colorScheme.light.slice(0, 5);
this.darkColors = colorScheme.dark.slice(0, 5);
},
onClose() {
this.$emit('close');
}
}
};
</script>
================================================
FILE: src/components/tables/htable.vue
================================================
<template>
<q-table
dense
flat
:data="hits"
:columns="columnsList"
:pagination.sync="pagination"
:rows-per-page-options="[5, 10, 25, 50, 100]"
:filter="filter"
:filter-method="compositeFilterFn"
row-key="name"
separator="cell"
class="ub-hits-table"
>
<template v-slot:top="props">
<q-input v-model="filter" debounce="500" filled dense placeholder="Search" clearable class="col-md-4">
<template v-slot:prepend>
<q-icon name="search" />
</template>
</q-input>
<q-space></q-space>
<q-toggle v-model="showPreview">Show Preview</q-toggle>
<q-btn flat round dense :icon="props.inFullscreen ? 'fullscreen_exit' : 'fullscreen'" @click="props.toggleFullscreen" class="q-ml-md" size="md" />
</template>
<template v-slot:header="props">
<q-tr :props="props">
<q-th v-for="col in props.cols" :key="col.name" :props="props" class="ub-th">
{{ col.label }}
</q-th>
</q-tr>
</template>
<template v-slot:body="props">
<tr v-if="hasHitColumn" class="ub-hits-tr" @click="onRowClick(props.row)" @dblclick="onRowDblClick(props.row)">
<td class="ub-hits-td-time">
{{ formatTsColumn(props.row) }}
</td>
<td class="ub-hits-td-hit">
<code class="ub-code" v-html="formatJsonColumn(props.row)"></code>
</td>
</tr>
<tr v-else class="ub-hits-tr" @click="onRowClick(props.row)" @dblclick="onRowDblClick(props.row)">
<td v-for="col in props.cols" :key="col.name">
{{ formatColumn(col, props.row) }}
</td>
</tr>
</template>
</q-table>
</template>
<script>
import pathOr from 'ramda/src/pathOr';
// Specialized table to show collection of JSON documents
export default {
name: 'HTable',
props: {
hits: {
type: Array,
default: () => []
},
tsPath: {
type: Array,
default: () => ['@timestamp']
},
tsLabel: {
type: String,
default: '@timestamp'
},
displayFields: {
type: Object,
default: () => {}
},
displayFieldsRemovePrefix: {
type: String,
default: null
},
page: {
type: Number,
default: 1
},
rowsPerPage: {
type: Number,
default: 5
},
sortBy: {
type: String,
default: ''
},
descending: {
type: Boolean,
default: true
},
preview: {
type: Boolean,
default: false
}
},
data: function() {
return {
pagination: {
page: 1,
rowsPerPage: this.rowsPerPage,
sortBy: this.tsLabel,
descending: true
},
tsColumn: {
name: this.tsLabel,
required: true,
label: this.tsLabel,
align: 'left',
field: this.tsLabel,
format: this.formatTsColumn,
sortable: true,
style: 'vertical-align: top;'
},
hitColumn: {
name: 'hit',
required: true,
label: 'Hit',
align: 'left',
sortable: false
},
columns: [],
items: [],
allColumnsList: [],
thStops: [25, 50, 100],
thStopsWidth: [100, 140, 160],
showPreview: this.preview,
filter: ''
};
},
computed: {
hasHitColumn: function() {
return this.showPreview; //return Object.keys(this.displayFields).length <= 0;
},
columnsList: function() {
let allColumnsList = [this.tsColumn];
if (this.hasHitColumn) {
allColumnsList.push(this.hitColumn);
} else {
for (let dc of Object.keys(this.displayFields)) {
let fn = dc;
if (this.displayFieldsRemovePrefix && fn.startsWith(this.displayFieldsRemovePrefix)) {
fn = fn.replace(this.displayFieldsRemovePrefix, '');
}
allColumnsList.push({
name: fn,
required: true,
label: fn,
field: dc,
align: 'left',
sortable: true
});
}
}
return allColumnsList;
}
},
mounted: function() {},
watch: {
page: function(val) {
this.pagination.page = val;
},
rowsPerPage: function(val) {
this.pagination.rowsPerPage = val;
},
sortBy: function(val) {
this.pagination.sortBy = val;
},
descending: function(val) {
this.pagination.descending = val;
}
},
methods: {
getThStyle(col) {
let len = col.label.length;
let idx = this.thStops.findIndex(x => x > len);
return idx !== -1 ? `min-width:${this.thStopsWidth[idx]}px;` : 'min-width:250px;';
},
formatColumn(col, row) {
if (col.label === this.tsLabel) {
return this.formatTsColumn(row);
}
let path = pathOr(null, [col.field], this.displayFields);
if (!path) {
return '';
}
return pathOr('', path, row);
},
formatTsColumn(row) {
return pathOr(null, this.tsPath, row);
},
formatJsonColumn(row) {
let code = JSON.stringify(row, (key, value) => {
if (typeof value === 'string') {
return `<span class='ub-v-s'>${value}</span>`;
} else if (typeof value === 'number') {
return `<span class='ub-v-n'>${value}</span>`;
}
return value;
});
return code;
},
onRowClick(row) {
this.$emit('rowClick', row);
},
compositeFilterFn(rows, terms, cols, cellValue) {
console.log(`compositeFilterFn: terms = ${JSON.stringify(terms)}`);
let filteredRows = rows;
if (terms && terms !== '') {
const lowerTerms = terms.toLowerCase();
filteredRows = rows.filter(
row =>
JSON.stringify(row)
.toLowerCase()
.indexOf(lowerTerms) !== -1
);
}
return filteredRows;
},
onRowDblClick(row) {
this.$emit('rowDblClick', row);
}
}
};
</script>
<style lang="scss">
.ub-hits-table {
width: 100%;
.ub-hits-tr {
font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace;
cursor: pointer;
}
.ub-hits-td-time {
vertical-align: top;
}
.ub-hits-td-hit {
vertical-align: top;
white-space: normal;
word-break: break-all;
}
}
</style>
================================================
FILE: src/components/tables/itable.vue
================================================
<template>
<q-table
dense
flat
virtual-scroll
:data="items"
:columns="columns"
:pagination.sync="pagination"
class="ub-items-table"
:row-key="valueProp"
:selection="selection"
:filter="filter"
:selected.sync="selected"
:visible-columns="visibleColumns"
:hide-bottom="items.length > 0"
>
<template v-if="showSearch" v-slot:top>
<q-input v-model="filter" debounce="500" filled dense placeholder="Search" clearable class="full-width">
<template v-slot:prepend>
<q-icon name="search" />
</template>
</q-input>
</template>
<template v-slot:header="props">
<q-tr :props="props">
<q-th v-if="hasSelectionToggle">
<q-toggle size="xs" v-model="props.selected" />
</q-th>
<q-th key="icon" :props="props"> </q-th>
<q-th key="value" :props="props">
{{ valueTitle + ' ' + valueSubTitle }}
</q-th>
<q-th v-if="showData" key="data" :props="props">
{{ dataTitle }}
</q-th>
</q-tr>
</template>
<template v-slot:body="props">
<q-tr
:props="props"
class="ub-items-row"
@click="props.selected = !props.selected"
@mouseover.native="onRowMouseOver(props.row)"
@mouseleave.native="onRowMouseLeave(props.row)"
>
<q-td auto-width v-if="hasSelectionToggle">
<q-toggle size="xs" v-model="props.selected" :style="`color:${props.row.color};`" />
</q-td>
<q-td key="icon" :props="props" auto-width>
<q-icon :name="icon" size="sm" :style="`color:${props.row.color};`" />
</q-td>
<q-td key="value" :props="props" class="ub-items-val">
{{ valueProp ? props.row[valueProp] : '' }}
</q-td>
<q-td key="data" v-if="showData" :props="props" auto-width class="ub-items-data">
{{ dataProp ? props.row[dataProp] : '' }}
</q-td>
</q-tr>
</template>
</q-table>
</template>
<script>
import { debounce } from 'quasar';
// Table that shows the list of items
// Note: when list of items is large, selection (toggle) may slow down (i.e. resizing)
// Consider implementing more efficient selection mechanism - i.e. click on row to select/ unselect
// For now this is fine
export default {
name: 'ITable',
props: {
items: {
type: Array,
default: () => []
},
/* Property in item object that contains value to be shown */
/* TODO Consider keyProp */
valueProp: {
type: String,
default: null
},
valueTitle: {
type: String,
default: 'Value'
},
valueSubTitle: {
type: String,
default: ''
},
/* Property in item object that contains active flag */
activeProp: {
type: String,
default: null
},
icon: {
type: String,
default: null
},
selection: {
type: String,
default: 'none'
},
selectionToggle: {
type: Boolean,
default: true
},
selectedItems: {
type: Array,
default: () => []
},
highlightedItem: {
type: Object,
default: null
},
dataProp: {
type: String,
default: null
},
dataTitle: {
type: String,
default: 'Data'
},
showData: {
type: Boolean,
default: false
},
showSearch: {
type: Boolean,
default: true
}
},
data: function() {
return {
pagination: {
sortBy: 'icons',
descending: false,
page: 1,
rowsPerPage: 0
},
filter: '',
columns: [
{
name: 'icon',
required: false,
label: '',
align: 'left',
field: 'title',
sortable: false
},
{ name: 'value', sortable: true, label: this.valueTitle, align: 'left', field: this.valueProp, style: 'white-space:normal; word-break:break-all;' },
{ name: 'data', sortable: true, label: this.dataTitle, align: 'left', field: 'data' }
],
selected: [],
highlighted: null
};
},
computed: {
visibleColumns: function() {
return this.icon ? ['icon', 'value', 'data', 'ctrls'] : ['value', 'data', 'ctrls'];
},
hasSelectionToggle: function() {
return (this.selection === 'single' || this.selection === 'multiple') && this.selectionToggle;
}
},
created() {
this.highlightedUpdateEvent = debounce(this.highlightedUpdateEvent, 500);
},
mounted: function() {},
watch: {
selected: function(val) {
this.$emit('update:selectedItems', val);
}
},
methods: {
highlightedUpdateEvent() {
this.$emit('update:highlightedItem', this.highlighted);
},
onRowMouseOver(row) {
// TODO Consider using keyProp
if (this.highlighted && this.highlighted[this.valueProp] === row[this.valueProp]) {
return; // already there
}
this.highlighted = row;
this.highlightedUpdateEvent();
},
onRowMouseLeave(row) {
this.highlighted = null;
this.highlightedUpdateEvent();
}
}
};
</script>
<style lang="scss">
.ub-items-table {
& table {
table-layout: auto;
}
/* [sv2] This disables highlighting background of selected rows in q-table. */
.q-table > tbody > tr.selected > td:after {
content: none;
}
& tbody > tr.selected > td.ub-items-val {
font-weight: 500;
}
/* TODO Consider monospace
font-family: "Monaco", "Menlo", "Ubuntu Mono", "Consolas", "source-code-pro", "Lucida Console", monospace;
*/
.ub-items-val {
&.active {
color: #1a1aa6;
}
}
.ub-items-data {
font-weight: 500;
}
.ub-items-row:hover > .ub-items-row-ctrl > .ub-items-ctrls {
display: block;
}
/* This enables passing arbitrary color to q-toggle */
.q-toggle__inner--truthy {
color: currentColor;
}
.q-toggle--dark .q-toggle__inner {
color: currentColor;
}
/* This makes track color more prominent */
.q-toggle__track {
opacity: 0.8;
}
/* This makes thumb less prominent in dark mode */
.q-toggle--dark .q-toggle__thumb:after {
opacity: 0.7;
}
}
</style>
================================================
FILE: src/components/tables/ptable.vue
================================================
<template>
<q-table dense flat hide-bottom :data="items" :columns="columns" row-key="prop" :pagination.sync="pagination" class="ub-prop-table" style="width: 100%;">
<template v-slot:body="props">
<q-tr :props="props" class="ub-prop-row">
<q-td key="prop" :props="props" auto-width class="ub-prop-key">
{{ props.row.title }}
</q-td>
<q-td key="val" :props="props" :class="valClass(props.row)">
{{ props.row.val }}
</q-td>
</q-tr>
</template>
</q-table>
</template>
<script>
// Show object properties in a table
export default {
name: 'PTable',
props: {
obj: Object,
removePrefix: {
type: String,
default: ''
},
// List of "active" properties, array of keys
activeProps: {
type: Array,
default: () => []
}
},
data: function() {
return {
keyCntr: 0,
pagination: {
sortBy: 'prop',
descending: false,
page: 1,
rowsPerPage: 0
},
columns: [
{
name: 'prop',
required: true,
label: 'Name',
align: 'left',
field: 'title',
sortable: true,
style: 'vertical-align: top;white-space:normal;'
},
{ name: 'val', label: 'Value', align: 'left', field: 'val', style: 'white-space:normal; word-break:break-all;font-weight:500;' }
],
items: []
};
},
computed: {},
mounted: function() {
this.preProcessObj(this.obj);
},
watch: {
obj: function(val) {
this.preProcessObj(val);
},
activeProps: function(val) {
this.items.map(x => {
x.active = val.includes(x.prop);
});
}
},
methods: {
valClass: function(row) {
return 'ub-prop-val ' + (row.active ? 'active' : '');
},
// Pre-process object, generate flat table data structure and values according to field types
preProcessObj(obj) {
this.items = [];
let allitems = [];
let path = [];
this.preProcessProps('', path, obj, allitems);
this.items = allitems;
},
addProp(prop, allItems) {
prop.title = prop.prop;
prop.active = this.activeProps.includes(prop.prop);
if (this.removePrefix !== '' && prop.title.startsWith(this.removePrefix)) {
prop.title = prop.title.replace(this.removePrefix, '');
}
allItems.push(prop);
},
preProcessProps(prefix, path, obj, allItems) {
if (typeof obj === 'undefined' || !obj) {
this.addProp(
{
typeclass: '',
typetext: 't',
type: 'string',
prop: prefix,
val: 'NULL',
path: path
},
allItems
);
return;
}
for (let prop of Object.keys(obj)) {
let propfullname = prefix !== '' ? `${prefix}.${prop}` : prop;
let currentPath = path.slice();
currentPath.push(prop);
switch (typeof obj[prop]) {
case 'object': {
this.preProcessProps(propfullname, currentPath, obj[prop], allItems);
break;
}
case 'string': {
this.addProp(
{
key: this.keyCntr++,
typeclass: '',
typetext: 't',
type: 'string',
prop: propfullname,
val: obj[prop],
path: currentPath
},
allItems
);
break;
}
case 'boolean': {
this.addProp(
{
key: this.keyCntr++,
typeclass: 'fa fa-adjust',
typetext: '',
type: 'boolean',
prop: propfullname,
val: obj[prop] ? 'true' : 'false',
path: currentPath
},
allItems
);
break;
}
case 'number': {
this.addProp(
{
key: this.keyCntr++,
typeclass: '',
typetext: '#',
type: 'number',
prop: propfullname,
val: `${obj[prop]}`,
path: currentPath
},
allItems
);
break;
}
}
}
}
}
};
</script>
<style lang="scss">
.ub-prop-table {
& table {
table-layout: auto;
}
/*
font-family: "Monaco", "Menlo", "Ubuntu Mono", "Consolas", "source-code-pro", "Lucida Console", monospace;
*/
.ub-prop-val {
&.active {
color: #1a1aa6;
}
}
.ub-prop-row:hover > .ub-prop-val > .ub-prop-ctrls {
display: block;
}
}
</style>
================================================
FILE: src/components/user/message.vue
================================================
<template>
<q-item>
<q-item-section avatar top>
<q-icon v-if="message.icon" :name="message.icon || 'mdi-message-text-outline'" size="34px" />
<q-avatar v-else-if="message.avatar" size="34px">
<img :src="message.avatar" />
</q-avatar>
<q-icon v-else name="mdi-message-text-outline" size="34px" />
</q-item-section>
<q-item-section top>
<q-item-label lines="1">
<div class="text-grey-7 cursor-pointer">{{ message.from }}</div>
<div class="cursor-pointer text-weight-medium">{{ message.subject }}</div>
</q-item-label>
<q-item-label class="text-body2" lines="1">
{{ message.text }}
</q-item-label>
</q-item-section>
<q-item-section top side>
<div class="text-grey-7 q-gutter-xs">
<q-btn size="sm" flat dense round icon="delete" />
<q-btn size="sm" flat dense round icon="done" />
<!--<q-btn size="12px" flat dense round icon="more_vert" />-->
</div>
<div class="text-grey-7 q-gutter-xs">
{{ message.date }}
</div>
</q-item-section>
</q-item>
</template>
<script>
export default {
name: 'Message',
components: {},
props: {
message: {
type: Object,
default: null
}
},
data: function() {
return {};
},
computed: {},
watch: {},
methods: {}
};
</script>
<style lang="scss"></style>
================================================
FILE: src/components/user/messages.vue
================================================
<template>
<div class="q-pa-md" style="max-width: 700px">
<q-bar class="bg-none">
Notifications
<q-space />
<q-btn dense flat round icon="close" @click="onClose" />
</q-bar>
<q-list style="width: 600px" separator>
<message v-for="message in messagesList" v-bind:key="message.id" :message="message"></message>
</q-list>
</div>
</template>
<script>
import Message from './message.vue';
export default {
name: 'Messages',
components: { Message },
props: {},
data() {
return {
messagesList: [
{
id: '1',
from: 'Slack',
subject: 'Current Job result: SUCCESS',
text: 'service-pipeline-branches/master:65e1b0d6-21f0-498d-9510-5a2acc49b06b',
icon: 'mdi-slack',
date: '4/23/20'
},
{
id: '2',
from: 'GitHub',
subject: 'github-actions pushed to slanatech/dashblocks-template ',
text: '62e7e60 Deploying to gh-pages from @e393152',
icon: 'mdi-github',
date: '4/23/20'
},
{
id: '3',
from: 'Leela Dunlap',
subject: 'Dashblocks Material Admin Template',
text: 'Dashblocks enables easily creating sophisticated interactive dashboards simply by declaring dashboard structure as json or javascript object',
avatar: 'images/avatars/female/1.png',
date: '4/23/20'
},
{
id: '4',
from: 'Keeley Milner',
subject: 'Dashblocks Charts',
text: 'Dashblocks uses popular charting libraries: d3, Chart.js, Dygraphs, Plotly.js.',
avatar: 'images/avatars/male/1.png',
date: '4/23/20'
},
{ id: '5', from: 'Leela Dunlap', subject: 'Re: Dashblocks Charts', text: 'Awesome!', avatar: 'images/avatars/female/1.png', date: '4/23/20' }
]
};
},
computed: {},
watch: {},
methods: {
onClose() {
this.$emit('close');
}
}
};
</script>
================================================
FILE: src/components/user/userinfo.vue
================================================
<template>
<div class="q-pa-md" style="max-width: 280px">
<q-list style="width: 260px">
<q-item>
<q-item-section avatar>
<q-avatar>
<img src="images/avatars/male/1.png" />
</q-avatar>
</q-item-section>
<q-item-section>
<q-item-label lines="1">
<div class="text-h5">John Smith</div>
</q-item-label>
</q-item-section>
</q-item>
<q-separator spaced />
<q-item clickable v-ripple v-close-popup>
<q-item-section avatar>
<q-icon name="mdi-account"></q-icon>
</q-item-section>
<q-item-section>
<q-item-label lines="1">
My Account
</q-item-label>
</q-item-section>
</q-item>
<q-item clickable v-ripple v-close-popup>
<q-item-section avatar>
<q-icon name="mdi-bell"></q-icon>
</q-item-section>
<q-item-section>
<q-item-label lines="1">
Notifications
</q-item-label>
</q-item-section>
<q-item-section side>
<q-badge color="red" label="5" />
</q-item-section>
</q-item>
<q-item clickable v-ripple v-close-popup>
<q-item-section avatar>
<q-icon name="mdi-calendar"></q-icon>
</q-item-section>
<q-item-section>
<q-item-label lines="1">
Calendar
</q-item-label>
</q-item-section>
<q-item-section side>
<q-badge color="red" label="1" />
</q-item-section>
</q-item>
<q-separator spaced />
<q-item clickable v-ripple v-close-popup>
<q-item-section avatar>
<q-icon name="mdi-help-box"></q-icon>
</q-item-section>
<q-item-section>
<q-item-label lines="1">
Help
</q-item-label>
</q-item-section>
</q-item>
<q-item clickable v-ripple v-close-popup>
<q-item-section avatar>
<q-icon name="mdi-logout"></q-icon>
</q-item-section>
<q-item-section>
<q-item-label lines="1">
Log Out
</q-item-label>
</q-item-section>
</q-item>
</q-list>
<!--<q-list bordered padding>
<q-item-label header>User Controls</q-item-label>
<q-item clickable v-ripple>
<q-item-section>
<q-item-label>Content filtering</q-item-label>
<q-item-label caption>
Set the content filtering level to restrict apps that can be downloaded
</q-item-label>
</q-item-section>
</q-item>
<q-item clickable v-ripple>
<q-item-section>
<q-item-label>Password</q-item-label>
<q-item-label caption>
Require password for purchase or use password to restrict purchase
</q-item-label>
</q-item-section>
</q-item>
<q-separator spaced />
<q-item-label header>General</q-item-label>
<q-item tag="label" v-ripple>
<q-item-section side top>
<q-checkbox v-model="check1" />
</q-item-section>
<q-item-section>
<q-item-label>Notifications</q-item-label>
<q-item-label caption>
Notify me about updates to apps or games that I downloaded
</q-item-label>
</q-item-section>
</q-item>
<q-item tag="label" v-ripple>
<q-item-section side top>
<q-checkbox v-model="check2" />
</q-item-section>
<q-item-section>
<q-item-label>Sound</q-item-label>
<q-item-label caption>
Auto-update apps at anytime. Data charges may apply
</q-item-label>
</q-item-section>
</q-item>
<q-item tag="label" v-ripple>
<q-item-section side top>
<q-checkbox v-model="check3" />
</q-item-section>
<q-item-section>
<q-item-label>Auto-add widgets</q-item-label>
<q-item-label caption>
Automatically add home screen widgets
</q-item-label>
</q-item-section>
</q-item>
<q-separator spaced />
<q-item-label header>Notifications</q-item-label>
<q-item tag="label" v-ripple>
<q-item-section>
<q-item-label>Battery too low</q-item-label>
</q-item-section>
<q-item-section side>
<q-toggle color="blue" v-model="notif1" val="battery" />
</q-item-section>
</q-item>
<q-item tag="label" v-ripple>
<q-item-section>
<q-item-label>Friend request</q-item-label>
<q-item-label caption>Allow notification</q-item-label>
</q-item-section>
<q-item-section side top>
<q-toggle color="green" v-model="notif2" val="friend" />
</q-item-section>
</q-item>
<q-item tag="label" v-ripple>
<q-item-section>
<q-item-label>Picture uploaded</q-item-label>
<q-item-label caption>Allow notification when uploading images</q-item-label>
</q-item-section>
<q-item-section side top>
<q-toggle color="red" v-model="notif3" val="picture" />
</q-item-section>
</q-item>
<q-separator spaced />
<q-item-label header>Other settings</q-item-label>
<q-item>
<q-item-section side>
<q-icon color="teal" name="volume_down" />
</q-item-section>
<q-item-section>
<q-slider v-model="volume" :min="0" :max="10" label color="teal" />
</q-item-section>
<q-item-section side>
<q-icon color="teal" name="volume_up" />
</q-item-section>
</q-item>
<q-item>
<q-item-section side>
<q-icon color="deep-orange" name="brightness_medium" />
</q-item-section>
<q-item-section>
<q-slider v-model="brightness" :min="0" :max="10" label color="deep-orange" />
</q-item-section>
</q-item>
<q-item>
<q-item-section side>
<q-icon color="primary" name="mic" />
</q-item-section>
<q-item-section>
<q-slider v-model="mic" :min="0" :max="50" label />
</q-item-section>
</q-item>
</q-list>-->
</div>
</template>
<script>
export default {
name: 'UserInfo',
components: {},
props: {},
data() {
return {};
},
computed: {},
watch: {},
methods: {}
};
</script>
================================================
FILE: src/dashboards/ChartJsShowcase.json
================================================
{
"layout": {
"type": "grid"
},
"widgets": [
{
"id": "w1",
"type": "DbChartjsLine",
"cspan": 4,
"height": 250,
"properties": {
"options": {
"maintainAspectRatio": false,
"legend": {
"labels": {
"fontColor": "red"
}
}
}
}
},
{
"id": "w2",
"type": "DbChartjsBar",
"cspan": 4,
"height": 250
},
{
"id": "w3",
"type": "DbChartjsHorizontalBar",
"cspan": 4
},
{
"id": "w4",
"type": "DbChartjsPie",
"cspan": 4
},
{
"id": "w5",
"type": "DbChartjsDoughnut",
"cspan": 4,
"height": 250
},
{
"id": "w6",
"type": "DbChartjsPolarArea",
"cspan": 4,
"height": 250
},
{
"id": "w7",
"type": "DbChartjsRadar",
"cspan": 4,
"height": 250
},
{
"id": "w8",
"type": "DbChartjsBar",
"cspan": 4,
"height": 250
},
{
"id": "w9",
"type": "DbChartjsBubble",
"cspan": 8,
"height": 300
},
{
"id": "w10",
"type": "DbChartjsScatter",
"cspan": 8,
"height": 300,
"properties": {
"options": {
"scales": {
"xAxes": [{
"type": "linear",
"position": "bottom"
}]
}
}
}
}
]
}
================================================
FILE: src/dashboards/dashfive.json
================================================
{
"layout": {
"type": "grid"
},
"widgets": [
{
"id": "wa",
"type": "DbDygraphsBar",
"cspan": 16,
"height": 250,
"properties": {
"options": {
"stackedGraph": true
}
}
},
{
"id": "w0",
"type": "DbTrendLine",
"cspan": 4,
"properties": {
"smooth": false,
"strokeWidth": 1
}
},
{
"id": "w0",
"type": "DbTrendLine",
"cspan": 4
},
{
"id": "w1",
"type": "DbTrendBar",
"cspan": 4
},
{
"id": "w2",
"type": "DbTrendBar",
"cspan": 4
},
{
"id": "w4",
"type": "DbNumber",
"cspan": 4,
"properties": {
"title": "Test OK",
"badge": "req/s",
"icon" : "fa fa-signal",
"ranges": [1000,2000]
}
},
{
"id": "w5",
"type": "DbNumber",
"cspan": 4,
"properties": {
"title": "Test Warning",
"badge": "req/s",
"icon" : "fa fa-clock",
"ranges": [1000,2000]
}
},
{
"id": "w6",
"type": "DbNumber",
"cspan": 4,
"properties": {
"title": "Test Alarm",
"badge": "req/s",
"icon" : "fa fa-chart-bar",
"ranges": [1000,2000]
}
},
{
"id": "w7",
"type": "DbPlotly",
"cspan": 16,
"rspan": 2,
"properties": {
"layout": {
"paper_bgcolor":"rgba(0,0,0,0)",
"plot_bgcolor":"rgba(0,0,0,0)",
"modebar": {
"bgcolor": "rgba(0,0,0,0)",
"color": "rgba(0,0,0,0.5)"
},
"title": "reactive charts",
"xaxis": {
"title": "xaxis title"
},
"yaxis": {
"title": "yaxis title"
},
"margin": {
"l": 60,
"r": 40,
"b": 40,
"t": 40,
"pad": 5
}
}
}
},
{
"id": "w8",
"type": "DbPlotlyLine",
"cspan": 10,
"height": 300,
"properties": {
"layout": {
"template": "plotly_dark",
"paper_bgcolor":"rgba(0,0,0,0)",
"plot_bgcolor":"rgba(0,0,0,0)",
"modebar": {
"bgcolor": "rgba(0,0,0,0)",
"color": "rgba(0,0,0,0.5)"
},
"margin": {
"l": 60,
"r": 40,
"b": 40,
"t": 40,
"pad": 5
}
}
}
},
{
"id": "w9",
"type": "DbPlotlyPie",
"cspan": 6,
"height": 300,
"properties": {
"layout": {
"legend": {
"orientation": "h"
},
"paper_bgcolor":"rgba(0,0,0,0)",
"plot_bgcolor":"rgba(0,0,0,0)",
"modebar": {
"bgcolor": "rgba(0,0,0,0)",
"color": "rgba(0,0,0,0.5)"
},
"margin": {
"l": 60,
"r": 40,
"b": 40,
"t": 40,
"pad": 5
}
}
}
}
]
}
================================================
FILE: src/dashboards/dashfour.json
================================================
{
"layout": {
"type": "grid"
},
"widgets": [
{
"id": "w0",
"type": "DbTrendLine",
"cspan": 16
},
{
"id": "w1",
"type": "WidgetOne",
"cspan": 2,
"rspan": 2
},
{
"id": "w2",
"type": "WidgetOne",
"cspan": 2,
"rspan": 1
},
{
"id": "w3",
"type": "DbChartjsLine",
"cspan": 4,
"height": 350
},
{
"id": "w4",
"type": "DbChartjsBar",
"cspan": 4,
"height": 350
},
{
"id": "w5",
"type": "DbChartjsBar",
"cspan": 4
},
{
"id": "w1",
"type": "DbNumber",
"cspan": 4,
"height": 300
},
{
"id": "w6",
"type": "DbEasyPie",
"cspan": 4,
"properties": {
"barColor": "red",
"lineWidth": 10
}
},
{
"id": "w7",
"type": "DbTrendLine",
"cspan": 6
}
]
}
================================================
FILE: src/dashboards/dashsix.json
================================================
{
"layout": {
"type": "grid"
},
"widgets": [
{
"id": "w1",
"type": "DbDygraphsBar",
"cspan": 16,
"height": 250,
"properties": {
"options": {
"stackedGraph": true
}
}
},
{
"id": "w2",
"type": "DbDygraphsLine",
"cspan": 8,
"height": 300,
"properties": {
"options": {
"stackedGraph": false,
"title": "Random value Chart",
"ylabel": "Probability",
"labels" : ["Date","AAA","BBB"],
"legend": "always"
}
}
},
{
"id": "w6",
"type": "DbDygraphsLine",
"cspan": 8,
"height": 300,
"properties": {
"options": {
"showRangeSelector": true,
"stackedGraph": false,
"title": "Random value Chart",
"ylabel": "Probability",
"labels" : ["Date","AAA","BBB"],
"legend": "always"
}
}
},
{
"id": "w3",
"type": "DbDygraphsSparkLine",
"cspan": 4,
"properties": {
"smoothing": 0.5
}
},
{
"id": "w4",
"type": "DbDygraphsSparkLine",
"cspan": 4,
"properties": {
"options": {
"colors": ["gray"],
"strokeWidth": 0,
"fillGraph": true,
"fillAlpha": 0.2
}
}
},
{
"id": "w5",
"type": "DbDygraphsSparkLine",
"cspan": 4,
"properties": {
"smoothing": 0.5
}
}
]
}
================================================
FILE: src/dashboards/dashthree.json
================================================
{
"layout": {
"type": "grid"
},
"widgets": [
{
"id": "w1",
"type": "DbHorizon",
"cspan": 16
}
]
}
================================================
FILE: src/data/ChartJsShowcase.json
================================================
{
"layout": {
"type": "grid"
},
"widgets": [
{
"id": "w1",
"type": "DbChartjsLine",
"cspan": 4,
"height": 250,
"properties": {
"options": {
"maintainAspectRatio": false,
"legend": {
"labels": {
"fontColor": "red"
}
}
}
}
},
{
"id": "w2",
"type": "DbChartjsBar",
"cspan": 4,
"height": 250
},
{
"id": "w3",
"type": "DbChartjsHorizontalBar",
"cspan": 4
},
{
"id": "w4",
"type": "DbChartjsPie",
"cspan": 4
},
{
"id": "w5",
"type": "DbChartjsDoughnut",
"cspan": 4,
"height": 250
},
{
"id": "w6",
"type": "DbChartjsPolarArea",
"cspan": 4,
"height": 250
},
{
"id": "w7",
"type": "DbChartjsRadar",
"cspan": 4,
"height": 250
},
{
"id": "w8",
"type": "DbChartjsBar",
"cspan": 4,
"height": 250
},
{
"id": "w9",
"type": "DbChartjsBubble",
"cspan": 8,
"height": 300
},
{
"id": "w10",
"type": "DbChartjsScatter",
"cspan": 8,
"height": 300,
"properties": {
"options": {
"scales": {
"xAxes": [{
"type": "linear",
"position": "bottom"
}]
}
}
}
}
]
}
================================================
FILE: src/data/api.json
================================================
{
"startts": 1588045302159,
"all": {
"requests": 2465,
"responses": 2465,
"errors": 286,
"info": 0,
"success": 2179,
"redirect": 0,
"client_error": 210,
"server_error": 76,
"total_time": 125717,
"max_time": 111,
"avg_time": 51.00081135902637,
"total_req_clength": 119548,
"max_req_clength": 210,
"avg_req_clength": 48,
"total_res_clength": 261003,
"max_res_clength": 203,
"avg_res_clength": 105,
"req_rate": 12.00325280846899,
"err_rate": 1.3829305466958186,
"apdex_threshold": 25,
"apdex_satisfied": 523,
"apdex_tolerated": 1649,
"apdex_score": 0.5466531440162272
},
"egress": {
"requests": 0,
"responses": 0,
"errors": 0,
"info": 0,
"success": 0,
"redirect": 0,
"client_error": 0,
"server_error": 0,
"total_time": 0,
"max_time": 0,
"avg_time": 0,
"total_req_clength": 0,
"max_req_clength": 0,
"avg_req_clength": 0,
"total_res_clength": 0,
"max_res_clength": 0,
"avg_res_clength": 0,
"req_rate": 0,
"err_rate": 0,
"apdex_threshold": 25,
"apdex_satisfied": 0,
"apdex_tolerated": 0,
"apdex_score": 0
},
"sys": {
"rss": 49680384,
"heapTotal": 34906112,
"heapUsed": 17352432,
"external": 1405319,
"cpu": 6.0893728265431175,
"lag": 0.123,
"maxlag": 4.560799
},
"name": "swagger-stats-spectest",
"version": "0.95.16",
"hostname": "hostname",
"ip": "127.0.0.1",
"apdexThreshold": 25,
"apidefs": {
"/v2/pet": {
"PUT": {
"swagger": true,
"deprecated": false,
"description": "",
"operationId": "updatePet",
"summary": "Update an existing pet",
"tags": [
"pet"
]
},
"POST": {
"swagger": true,
"deprecated": false,
"description": "",
"operationId": "addPet",
"summary": "Add a new pet to the store",
"tags": [
"pet"
]
}
},
"/v2/pet/findByStatus": {
"GET": {
"swagger": true,
"deprecated": false,
"description": "Multiple status values can be provided with comma separated strings",
"operationId": "findPetsByStatus",
"summary": "Finds Pets by status",
"tags": [
"pet"
]
}
},
"/v2/pet/findByTags": {
"GET": {
"swagger": true,
"deprecated": true,
"description": "Muliple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.",
"operationId": "findPetsByTags",
"summary": "Finds Pets by tags",
"tags": [
"pet"
]
}
},
"/v2/pet/{petId}": {
"GET": {
"swagger": true,
"deprecated": false,
"description": "Returns a single pet",
"operationId": "getPetById",
"summary": "Find pet by ID",
"tags": [
"pet"
]
},
"POST": {
"swagger": true,
"deprecated": false,
"description": "",
"operationId": "updatePetWithForm",
"summary": "Updates a pet in the store with form data",
"tags": [
"pet"
]
},
"DELETE": {
"swagger": true,
"deprecated": false,
"description": "",
"operationId": "deletePet",
"summary": "Deletes a pet",
"tags": [
"pet"
]
}
},
"/v2/pet/{petId}/uploadImage": {
"POST": {
"swagger": true,
"deprecated": false,
"description": "",
"operationId": "uploadFile",
"summary": "uploads an image",
"tags": [
"pet"
]
}
},
"/v2/store/inventory": {
"GET": {
"swagger": true,
"deprecated": false,
"description": "Returns a map of status codes to quantities",
"operationId": "getInventory",
"summary": "Returns pet inventories by status",
"tags": [
"store"
]
}
},
"/v2/store/order": {
"POST": {
"swagger": true,
"deprecated": false,
"description": "",
"operationId": "placeOrder",
"summary": "Place an order for a pet",
"tags": [
"store"
]
}
},
"/v2/store/order/{orderId}": {
"GET": {
"swagger": true,
"deprecated": false,
"description": "For valid response try integer IDs with value >= 1 and <= 10. Other values will generated exceptions",
"operationId": "getOrderById",
"summary": "Find purchase order by ID",
"tags": [
"store"
]
},
"DELETE": {
"swagger": true,
"deprecated": false,
"description": "For valid response try integer IDs with positive integer value. Negative or non-integer values will generate API errors",
"operationId": "deleteOrder",
"summary": "Delete purchase order by ID",
"tags": [
"store"
]
}
},
"/v2/user": {
"POST": {
"swagger": true,
"deprecated": false,
"description": "This can only be done by the logged in user.",
"operationId": "createUser",
"summary": "Create user",
"tags": [
"user"
]
}
},
"/v2/user/createWithArray": {
"POST": {
"swagger": true,
"deprecated": false,
"description": "",
"operationId": "createUsersWithArrayInput",
"summary": "Creates list of users with given input array",
"tags": [
"user"
]
}
},
"/v2/user/createWithList": {
"POST": {
"swagger": true,
"deprecated": false,
"description": "",
"operationId": "createUsersWithListInput",
"summary": "Creates list of users with given input array",
"tags": [
"user"
]
}
},
"/v2/user/login": {
"GET": {
"swagger": true,
"deprecated": false,
"description": "",
"operationId": "loginUser",
"summary": "Logs user into the system",
"tags": [
"user"
]
}
},
"/v2/user/logout": {
"GET": {
"swagger": true,
"deprecated": false,
"description": "",
"operationId": "logoutUser",
"summary": "Logs out current logged in user session",
"tags": [
"user"
]
}
},
"/v2/user/{username}": {
"GET": {
"swagger": true,
"deprecated": false,
"description": "",
"operationId": "getUserByName",
"summary": "Get user by user name",
"tags": [
"user"
]
},
"PUT": {
"swagger": true,
"deprecated": false,
"description": "This can only be done by the logged in user.",
"operationId": "updateUser",
"summary": "Updated user",
"tags": [
"user"
]
},
"DELETE": {
"swagger": true,
"deprecated": false,
"description": "This can only be done by the logged in user.",
"operationId": "deleteUser",
"summary": "Delete user",
"tags": [
"user"
]
}
}
},
"apistats": {
"/v2/pet": {
"PUT": {
"requests": 115,
"responses": 115,
"errors": 16,
"info": 0,
"success": 99,
"redirect": 0,
"client_error": 11,
"server_error": 5,
"total_time": 5807,
"max_time": 98,
"avg_time": 50.495652173913044,
"total_req_clength": 13050,
"max_req_clength": 210,
"avg_req_clength": 113,
"total_res_clength": 12180,
"max_res_clength": 202,
"avg_res_clength": 105,
"req_rate": 0.5599894819366872,
"err_rate": 0.07791158009553908,
"apdex_threshold": 25,
"apdex_satisfied": 24,
"apdex_tolerated": 75,
"apdex_score": 0.5347826086956522
},
"POST": {
"requests": 116,
"responses": 116,
"errors": 13,
"info": 0,
"success": 103,
"redirect": 0,
"client_error": 11,
"server_error": 2,
"total_time": 6038,
"max_time": 101,
"avg_time": 52.05172413793103,
"total_req_clength": 12510,
"max_req_clength": 209,
"avg_req_clength": 107,
"total_res_clength": 11777,
"max_res_clength": 203,
"avg_res_clength": 101,
"req_rate": 0.5648589556926583,
"err_rate": 0.05843368507165431,
"apdex_threshold": 25,
"apdex_satisfied": 32,
"apdex_tolerated": 71,
"apdex_score": 0.5818965517241379
}
},
"/v2/pet/findByStatus": {
"GET": {
"requests": 119,
"responses": 119,
"errors": 15,
"info": 0,
"success": 104,
"redirect": 0,
"client_error": 12,
"server_error": 3,
"total_time": 6716,
"max_time": 100,
"avg_time": 56.436974789915965,
"total_req_clength": 0,
"max_req_clength": 0,
"avg_req_clength": 0,
"total_res_clength": 11860,
"max_res_clength": 203,
"avg_res_clength": 99,
"req_rate": 0.5794673769605719,
"err_rate": 0.07304210633956788,
"apdex_threshold": 25,
"apdex_satisfied": 18,
"apdex_tolerated": 86,
"apdex_score": 0.5126050420168067
}
},
"/v2/pet/findByTags": {
"GET": {
"requests": 116,
"responses": 116,
"errors": 12,
"info": 0,
"success": 104,
"redirect": 0,
"client_error": 10,
"server_error": 2,
"total_time": 6412,
"max_time": 101,
"avg_time": 55.275862068965516,
"total_req_clength": 0,
"max_req_clength": 0,
"avg_req_clength": 0,
"total_res_clength": 12530,
"max_res_clength": 201,
"avg_res_clength": 108,
"req_rate": 0.5648589556926583,
"err_rate": 0.05843368507165431,
"apdex_threshold": 25,
"apdex_satisfied": 20,
"apdex_tolerated": 83,
"apdex_score": 0.5301724137931034
}
},
"/v2/pet/{petId}": {
"GET": {
"requests": 114,
"responses": 114,
"errors": 16,
"info": 0,
"success": 98,
"redirect": 0,
"client_error": 9,
"server_error": 7,
"total_time": 5997,
"max_time": 101,
"avg_time": 52.60526315789474,
"total_req_clength": 0,
"max_req_clength": 0,
"avg_req_clength": 0,
"total_res_clength": 12009,
"max_res_clength": 202,
"avg_res_clength": 105,
"req_rate": 0.5551200081807159,
"err_rate": 0.07791158009553908,
"apdex_threshold": 25,
"apdex_satisfied": 26,
"apdex_tolerated": 71,
"apdex_score": 0.5394736842105263
},
"POST": {
"requests": 113,
"responses": 113,
"errors": 11,
"info": 0,
"success": 102,
"redirect": 0,
"client_error": 6,
"server_error": 5,
"total_time": 5768,
"max_time": 100,
"avg_time": 51.04424778761062,
"total_req_clength": 12302,
"max_req_clength": 210,
"avg_req_clength": 108,
"total_res_clength": 12516,
"max_res_clength": 203,
"avg_res_clength": 110,
"req_rate": 0.5502505344247447,
"err_rate": 0.05356421131568312,
"apdex_threshold": 25,
"apdex_satisfied": 21,
"apdex_tolerated": 81,
"apdex_score": 0.5442477876106194
},
"DELETE": {
"requests": 111,
"responses": 111,
"errors": 16,
"info": 0,
"success": 95,
"redirect": 0,
"client_error": 14,
"server_error": 2,
"total_time": 5477,
"max_time": 101,
"avg_time": 49.34234234234234,
"total_req_clength": 0,
"max_req_clength": 0,
"avg_req_clength": 0,
"total_res_clength": 10790,
"max_res_clength": 201,
"avg_res_clength": 97,
"req_rate": 0.5405115869128023,
"err_rate": 0.07791158009553908,
"apdex_threshold": 25,
"apdex_satisfied": 21,
"apdex_tolerated": 73,
"apdex_score": 0.5180180180180181
}
},
"/v2/pet/{petId}/uploadImage": {
"POST": {
"requests": 122,
"responses": 122,
"errors": 12,
"info": 0,
"success": 110,
"redirect": 0,
"client_error": 10,
"server_error": 2,
"total_time": 5714,
"max_time": 99,
"avg_time": 46.83606557377049,
"total_req_clength": 14007,
"max_req_clength": 210,
"avg_req_clength": 114,
"total_res_clength": 12753,
"max_res_clength": 201,
"avg_res_clength": 104,
"req_rate": 0.5940757982284854,
"err_rate": 0.05843368507165431,
"apdex_threshold": 25,
"apdex_satisfied": 31,
"apdex_tolerated": 79,
"apdex_score": 0.5778688524590164
}
},
"/v2/store/inventory": {
"GET": {
"requests": 100,
"responses": 100,
"errors": 16,
"info": 0,
"success": 84,
"redirect": 0,
"client_error": 11,
"server_error": 5,
"total_time": 5166,
"max_time": 100,
"avg_time": 51.66,
"total_req_clength": 0,
"max_req_clength": 0,
"avg_req_clength": 0,
"total_res_clength": 9600,
"max_res_clength": 202,
"avg_res_clength": 96,
"req_rate": 0.48694737559711926,
"err_rate": 0.07791158009553908,
"apdex_threshold": 25,
"apdex_satisfied": 23,
"apdex_tolerated": 61,
"apdex_score": 0.535
}
},
"/v2/store/order": {
"POST": {
"requests": 107,
"responses": 107,
"errors": 15,
"info": 0,
"success": 92,
"redirect": 0,
"client_error": 7,
"server_error": 8,
"total_time": 5302,
"max_time": 98,
"avg_time": 49.55140186915888,
"total_req_clength": 12968,
"max_req_clength": 208,
"avg_req_clength": 121,
"total_res_clength": 10589,
"max_res_clength": 201,
"avg_res_clength": 98,
"req_rate": 0.5210336918889176,
"err_rate": 0.07304210633956788,
"apdex_threshold": 25,
"apdex_satisfied": 24,
"apdex_tolerated": 68,
"apdex_score": 0.5420560747663551
}
},
"/v2/store/order/{orderId}": {
"GET": {
"requests": 110,
"responses": 110,
"errors": 9,
"info": 0,
"success": 101,
"redirect": 0,
"client_error": 8,
"server_error": 1,
"total_time": 5054,
"max_time": 101,
"avg_time": 45.945454545454545,
"total_req_clength": 0,
"max_req_clength": 0,
"avg_req_clength": 0,
"total_res_clength": 11548,
"max_res_clength": 203,
"avg_res_clength": 104,
"req_rate": 0.5356421131568312,
"err_rate": 0.04382526380374073,
"apdex_threshold": 25,
"apdex_satisfied": 26,
"apdex_tolerated": 74,
"apdex_score": 0.5727272727272728
},
"DELETE": {
"requests": 119,
"responses": 119,
"errors": 14,
"info": 0,
"success": 105,
"redirect": 0,
"client_error": 10,
"server_error": 4,
"total_time": 5792,
"max_time": 99,
"avg_time": 48.67226890756302,
"total_req_clength": 0,
"max_req_clength": 0,
"avg_req_clength": 0,
"total_res_clength": 13335,
"max_res_clength": 203,
"avg_res_clength": 112,
"req_rate": 0.5794673769605719,
"err_rate": 0.0681726325835967,
"apdex_threshold": 25,
"apdex_satisfied": 30,
"apdex_tolerated": 75,
"apdex_score": 0.5672268907563025
}
},
"/v2/user": {
"POST": {
"requests": 120,
"responses": 120,
"errors": 15,
"info": 0,
"success": 105,
"redirect": 0,
"client_error": 13,
"server_error": 2,
"total_time": 5876,
"max_time": 101,
"avg_time": 48.96666666666667,
"total_req_clength": 13878,
"max_req_clength": 210,
"avg_req_clength": 115,
"total_res_clength": 13716,
"max_res_clength": 203,
"avg_res_clength": 114,
"req_rate": 0.5843368507165431,
"err_rate": 0.07304210633956788,
"apdex_threshold": 25,
"apdex_satisfied": 24,
"apdex_tolerated": 80,
"apdex_score": 0.5333333333333333
}
},
"/v2/user/createWithArray": {
"POST": {
"requests": 104,
"responses": 104,
"errors": 11,
"info": 0,
"success": 93,
"redirect": 0,
"client_error": 8,
"server_error": 3,
"total_time": 5149,
"max_time": 100,
"avg_time": 49.50961538461539,
"total_req_clength": 11446,
"max_req_clength": 208,
"avg_req_clength": 110,
"total_res_clength": 11957,
"max_res_clength": 203,
"avg_res_clength": 114,
"req_rate": 0.5064252706210041,
"err_rate": 0.05356421131568312,
"apdex_threshold": 25,
"apdex_satisfied": 29,
"apdex_tolerated": 64,
"apdex_score": 0.5865384615384616
}
},
"/v2/user/createWithList": {
"POST": {
"requests": 114,
"responses": 114,
"errors": 14,
"info": 0,
"success": 100,
"redirect": 0,
"client_error": 11,
"server_error": 3,
"total_time": 5949,
"max_time": 97,
"avg_time": 52.18421052631579,
"total_req_clength": 12257,
"max_req_clength": 210,
"avg_req_clength": 107,
"total_res_clength": 12477,
"max_res_clength": 202,
"avg_res_clength": 109,
"req_rate": 0.5551200081807159,
"err_rate": 0.0681726325835967,
"apdex_threshold": 25,
"apdex_satisfied": 22,
"apdex_tolerated": 78,
"apdex_score": 0.5350877192982456
}
},
"/v2/user/login": {
"GET": {
"requests": 111,
"responses": 111,
"errors": 12,
"info": 0,
"success": 99,
"redirect": 0,
"client_error": 8,
"server_error": 4,
"total_time": 5295,
"max_time": 100,
"avg_time": 47.7027027027027,
"total_req_clength": 0,
"max_req_clength": 0,
"avg_req_clength": 0,
"total_res_clength": 12515,
"max_res_clength": 203,
"avg_res_clength": 112,
"req_rate": 0.5405115869128023,
"err_rate": 0.05843368507165431,
"apdex_threshold": 25,
"apdex_satisfied": 26,
"apdex_tolerated": 73,
"apdex_score": 0.5630630630630631
}
},
"/v2/user/logout": {
"GET": {
"requests": 113,
"responses": 113,
"errors": 7,
"info": 0,
"success": 106,
"redirect": 0,
"client_error": 5,
"server_error": 2,
"total_time": 5795,
"max_time": 102,
"avg_time": 51.283185840707965,
"total_req_clength": 0,
"max_req_clength": 0,
"avg_req_clength": 0,
"total_res_clength": 13021,
"max_res_clength": 203,
"avg_res_clength": 115,
"req_rate": 0.5502505344247447,
"err_rate": 0.03408631629179835,
"apdex_threshold": 25,
"apdex_satisfied": 23,
"apdex_tolerated": 83,
"apdex_score": 0.5707964601769911
}
},
"/v2/user/{username}": {
"GET": {
"requests": 112,
"responses": 112,
"errors": 16,
"info": 0,
"success": 96,
"redirect": 0,
"client_error": 10,
"server_error": 6,
"total_time": 5814,
"max_time": 99,
"avg_time": 51.910714285714285,
"total_req_clength": 0,
"max_req_clength": 0,
"avg_req_clength": 0,
"total_res_clength": 10691,
"max_res_clength": 201,
"avg_res_clength": 95,
"req_rate": 0.5453810606687736,
"err_rate": 0.07304210633956788,
"apdex_threshold": 25,
"apdex_satisfied": 20,
"apdex_tolerated": 76,
"apdex_score": 0.5178571428571429
},
"PUT": {
"requests": 108,
"responses": 108,
"errors": 10,
"info": 0,
"success": 98,
"redirect": 0,
"client_error": 9,
"server_error": 1,
"total_time": 5792,
"max_time": 99,
"avg_time": 53.629629629629626,
"total_req_clength": 11986,
"max_req_clength": 207,
"avg_req_clength": 110,
"total_res_clength": 11715,
"max_res_clength": 202,
"avg_res_clength": 108,
"req_rate": 0.5259031656448888,
"err_rate": 0.048694737559711924,
"apdex_threshold": 25,
"apdex_satisfied": 21,
"apdex_tolerated": 77,
"apdex_score": 0.5509259259259259
},
"DELETE": {
"requests": 114,
"responses": 114,
"errors": 13,
"info": 0,
"success": 101,
"redirect": 0,
"client_error": 8,
"server_error": 5,
"total_time": 6311,
"max_time": 100,
"avg_time": 55.35964912280702,
"total_req_clength": 0,
"max_req_clength": 0,
"avg_req_clength": 0,
"total_res_clength": 12074,
"max_res_clength": 202,
"avg_res_clength": 105,
"req_rate": 0.5551200081807159,
"err_rate": 0.06330315882762551,
"apdex_threshold": 25,
"apdex_satisfied": 18,
"apdex_tolerated": 83,
"apdex_score": 0.5219298245614035
}
},
"/pets": {
"GET": {
"requests": 49,
"responses": 49,
"errors": 6,
"info": 0,
"success": 43,
"redirect": 0,
"client_error": 5,
"server_error": 1,
"total_time": 2277,
"max_time": 111,
"avg_time": 46.46938775510204,
"total_req_clength": 0,
"max_req_clength": 0,
"avg_req_clength": 0,
"total_res_clength": 4831,
"max_res_clength": 195,
"avg_res_clength": 98,
"req_rate": 0.23860421404258844,
"err_rate": 0.029216842535827153,
"apdex_threshold": 25,
"apdex_satisfied": 14,
"apdex_tolerated": 28,
"apdex_score": 0.5714285714285714
},
"POST": {
"requests": 48,
"responses": 48,
"errors": 5,
"info": 0,
"success": 43,
"redirect": 0,
"client_error": 4,
"server_error": 1,
"total_time": 2424,
"max_time": 99,
"avg_time": 50.5,
"total_req_clength": 5144,
"max_req_clength": 204,
"avg_req_clength": 107,
"total_res_clength": 5319,
"max_res_clength": 202,
"avg_res_clength": 110,
"req_rate": 0.23373474028661723,
"err_rate": 0.024347368779855962,
"apdex_threshold": 25,
"apdex_satisfied": 8,
"apdex_tolerated": 35,
"apdex_score": 0.53125
}
},
"/pets/abcde": {
"DELETE": {
"requests": 60,
"responses": 60,
"errors": 10,
"info": 0,
"success": 50,
"redirect": 0,
"client_error": 8,
"server_error": 2,
"total_time": 3100,
"max_time": 101,
"avg_time": 51.666666666666664,
"total_req_clength": 0,
"max_req_clength": 0,
"avg_req_clength": 0,
"total_res_clength": 6082,
"max_res_clength": 186,
"avg_res_clength": 101,
"req_rate": 0.29216842535827153,
"err_rate": 0.048694737559711924,
"apdex_threshold": 25,
"apdex_satisfied": 11,
"apdex_tolerated": 38,
"apdex_score": 0.5
},
"GET": {
"requests": 50,
"responses": 50,
"errors": 2,
"info": 0,
"success": 48,
"redirect": 0,
"client_error": 2,
"server_error": 0,
"total_time": 2692,
"max_time": 99,
"avg_time": 53.84,
"total_req_clength": 0,
"max_req_clength": 0,
"avg_req_clength": 0,
"total_res_clength": 5118,
"max_res_clength": 203,
"avg_res_clength": 102,
"req_rate": 0.24347368779855963,
"err_rate": 0.009738947511942386,
"apdex_threshold": 25,
"apdex_satisfied": 11,
"apdex_tolerated": 37,
"apdex_score": 0.59
}
}
}
}
================================================
FILE: src/data/apioperation.json
================================================
{
"startts": 1588045302159,
"all": {
"requests": 55827,
"responses": 55827,
"errors": 5998,
"info": 0,
"success": 49829,
"redirect": 0,
"client_error": 3994,
"server_error": 2004,
"total_time": 2844745,
"max_time": 211,
"avg_time": 50.956436849553086,
"total_req_clength": 2760192,
"max_req_clength": 210,
"avg_req_clength": 49,
"total_res_clength": 5786238,
"max_res_clength": 203,
"avg_res_clength": 103,
"req_rate": 23.541789660116386,
"err_rate": 2.5293075820190603,
"apdex_threshold": 25,
"apdex_satisfied": 12278,
"apdex_tolerated": 37332,
"apdex_score": 0.5542837695022121
},
"egress": {
"requests": 0,
"responses": 0,
"errors": 0,
"info": 0,
"success": 0,
"redirect": 0,
"client_error": 0,
"server_error": 0,
"total_time": 0,
"max_time": 0,
"avg_time": 0,
"total_req_clength": 0,
"max_req_clength": 0,
"avg_req_clength": 0,
"total_res_clength": 0,
"max_res_clength": 0,
"avg_res_clength": 0,
"req_rate": 0,
"err_rate": 0,
"apdex_threshold": 25,
"apdex_satisfied": 0,
"apdex_tolerated": 0,
"apdex_score": 0
},
"sys": {
"rss": 49631232,
"heapTotal": 26808320,
"heapUsed": 19504832,
"external": 1397813,
"cpu": 4.595193432265044,
"lag": 0.092901,
"maxlag": 4.560799
},
"name": "swagger-stats-spectest",
"version": "0.95.16",
"hostname": "hostname",
"ip": "127.0.0.1",
"apdexThreshold": 25,
"apiop": {
"/v2/pet/{petId}/uploadImage": {
"POST": {
"defs": {
"swagger": true,
"deprecated": false,
"description": "",
"operationId": "uploadFile",
"summary": "uploads an image",
"tags": [
"pet"
]
},
"stats": {
"requests": 2694,
"responses": 2694,
"errors": 283,
"info": 0,
"success": 2411,
"redirect": 0,
"client_error": 186,
"server_error": 97,
"total_time": 137397,
"max_time": 126,
"avg_time": 51.001113585746104,
"total_req_clength": 294790,
"max_req_clength": 210,
"avg_req_clength": 109,
"total_res_clength": 275845,
"max_res_clength": 203,
"avg_res_clength": 102,
"req_rate": 1.136037783587754,
"err_rate": 0.11933878721430378,
"apdex_threshold": 25,
"apdex_satisfied": 589,
"apdex_tolerated": 1808,
"apdex_score": 0.5541945063103192
},
"details": {
"duration": {
"count": 2694,
"buckets": [
10,
25,
50,
100,
200
],
"values": [
275,
377,
679,
1349,
14,
0
]
},
"req_size": {
"count": 2694,
"buckets": [
10,
25,
50,
100,
200
],
"values": [
0,
218,
336,
648,
1388,
104
]
},
"res_size": {
"count": 2694,
"buckets": [
10,
25,
50,
100,
200
],
"values": [
97,
204,
352,
684,
1318,
39
]
},
"code": {
"200": {
"count": 2411
},
"401": {
"count": 44
},
"404": {
"count": 142
},
"500": {
"count": 55
},
"501": {
"count": 42
}
},
"parameters": {
"petId": {
"name": "petId",
"in": "path",
"description": "ID of pet to update",
"required": true,
"type": "integer",
"format": "int64",
"hits": 2694,
"misses": 0
},
"additionalMetadata": {
"name": "additionalMetadata",
"in": "formData",
"description": "Additional data to pass to server",
"required": false,
"type": "string",
"hits": 0,
"misses": 0
},
"file": {
"name": "file",
"in": "formData",
"description": "file to upload",
"required": false,
"type": "file",
"hits": 0,
"misses": 0
}
}
}
}
}
}
}
================================================
FILE: src/data/errors.json
================================================
{
"startts": 1588092850475,
"all": {
"requests": 13204,
"responses": 13204,
"errors": 1402,
"info": 0,
"success": 11802,
"redirect": 0,
"client_error": 915,
"server_error": 487,
"total_time": 665490,
"max_time": 102,
"avg_time": 50.40063617085732,
"total_req_clength": 638059,
"max_req_clength": 210,
"avg_req_clength": 48,
"total_res_clength": 1363690,
"max_res_clength": 203,
"avg_res_clength": 103,
"req_rate": 24.924164774325313,
"err_rate": 2.64644645664981,
"apdex_threshold": 25,
"apdex_satisfied": 2944,
"apdex_tolerated": 8854,
"apdex_score": 0.5582399272947591
},
"egress": {
"requests": 0,
"responses": 0,
"errors": 0,
"info": 0,
"success": 0,
"redirect": 0,
"client_error": 0,
"server_error": 0,
"total_time": 0,
"max_time": 0,
"avg_time": 0,
"total_req_clength": 0,
"max_req_clength": 0,
"avg_req_clength": 0,
"total_res_clength": 0,
"max_res_clength": 0,
"avg_res_clength": 0,
"req_rate": 0,
"err_rate": 0,
"apdex_threshold": 25,
"apdex_satisfied": 0,
"apdex_tolerated": 0,
"apdex_score": 0
},
"sys": {
"rss": 61698048,
"heapTotal": 24158208,
"heapUsed": 19610016,
"external": 1576443,
"cpu": 2.132010624706579,
"lag": 0.103182,
"maxlag": 6.058928
},
"name": "swagger-stats-spectest",
"version": "0.95.17",
"hostname": "hostname",
"ip": "127.0.0.1",
"apdexThreshold": 25,
"timeline": {
"settings": {
"bucket_duration": 1000,
"bucket_current": 1588093380,
"length": 60
},
"data": {
"1588093321": {
"stats": {
"requests": 29,
"responses": 29,
"errors": 3,
"info": 0,
"success": 26,
"redirect": 0,
"client_error": 0,
"server_error": 3,
"total_time": 1663,
"max_time": 97,
"avg_time": 57.3448275862069,
"total_req_clength": 1108,
"max_req_clength": 190,
"avg_req_clength": 38,
"total_res_clength": 2544,
"max_res_clength": 193,
"avg_res_clength": 87,
"req_rate": 29,
"err_rate": 3,
"apdex_threshold": 25,
"apdex_satisfied": 4,
"apdex_tolerated": 22,
"apdex_score": 0.5172413793103449
},
"sys": {
"rss": 73629696,
"heapTotal": 36741120,
"heapUsed": 22383060,
"external": 1927509,
"cpu": 3.1899242839189688,
"lag": 0.129841
}
},
"1588093322": {
"stats": {
"requests": 22,
"responses": 22,
"errors": 3,
"info": 0,
"success": 19,
"redirect": 0,
"client_error": 3,
"server_error": 0,
"total_time": 1147,
"max_time": 94,
"avg_time": 52.13636363636363,
"total_req_clength": 1269,
"max_req_clength": 188,
"avg_req_clength": 57,
"total_res_clength": 2749,
"max_res_clength": 195,
"avg_res_clength": 124,
"req_rate": 22,
"err_rate": 3,
"apdex_threshold": 25,
"apdex_satisfied": 3,
"apdex_tolerated": 16,
"apdex_score": 0.5
},
"sys": {
"rss": 73764864,
"heapTotal": 36741120,
"heapUsed": 19172033,
"external": 1503999,
"cpu": 2.8256244349538524,
"lag": 0.04654
}
},
"1588093323": {
"stats": {
"requests": 28,
"responses": 28,
"errors": 2,
"info": 0,
"success": 26,
"redirect": 0,
"client_error": 2,
"server_error": 0,
"total_time": 1445,
"max_time": 98,
"avg_time": 51.607142857142854,
"total_req_clength": 1676,
"max_req_clength": 200,
"avg_req_clength": 59,
"total_res_clength": 3045,
"max_res_clength": 193,
"avg_res_clength": 108,
"req_rate": 28,
"err_rate": 2,
"apdex_threshold": 25,
"apdex_satisfied": 4,
"apdex_tolerated": 22,
"apdex_score": 0.5357142857142857
},
"sys": {
"rss": 73764864,
"heapTotal": 36741120,
"heapUsed": 20588233,
"external": 1639775,
"cpu": 3.0452411938048027,
"lag": 0.039472
}
},
"1588093324": {
"stats": {
"requests": 19,
"responses": 19,
"errors": 2,
"info": 0,
"success": 17,
"redirect": 0,
"client_error": 2,
"server_error": 0,
"total_time": 980,
"max_time": 97,
"avg_time": 51.578947368421055,
"total_req_clength": 767,
"max_req_clength": 153,
"avg_req_clength": 40,
"total_res_clength": 1871,
"max_res_clength": 176,
"avg_res_clength": 98,
"req_rate": 19,
"err_rate": 2,
"apdex_threshold": 25,
"apdex_satisfied": 4,
"apdex_tolerated": 13,
"apdex_score": 0.5526315789473685
},
"sys": {
"rss": 73764864,
"heapTotal": 36741120,
"heapUsed": 21622555,
"external": 1779088,
"cpu": 2.2886910278853336,
"lag": 0.058839
}
},
"1588093325": {
"stats": {
"requests": 42,
"responses": 42,
"errors": 5,
"info": 0,
"success": 37,
"redirect": 0,
"client_error": 4,
"server_error": 1,
"total_time": 2178,
"max_time": 98,
"avg_time": 51.857142857142854,
"total_req_clength": 1648,
"max_req_clength": 197,
"avg_req_clength": 39,
"total_res_clength": 4712,
"max_res_clength": 198,
"avg_res_clength": 112,
"req_rate": 42,
"err_rate": 5,
"apdex_threshold": 25,
"apdex_satisfied": 7,
"apdex_tolerated": 30,
"apdex_score": 0.5238095238095238
},
"sys": {
"rss": 73764864,
"heapTotal": 36741120,
"heapUsed": 22830306,
"external": 1917044,
"cpu": 3.268680452031966,
"lag": 0.087054
}
},
"1588093326": {
"stats": {
"requests": 20,
"responses": 20,
"errors": 2,
"info": 0,
"success": 18,
"redirect": 0,
"client_error": 2,
"server_error": 0,
"total_time": 903,
"max_time": 93,
"avg_time": 45.15,
"total_req_clength": 1553,
"max_req_clength": 203,
"avg_req_clength": 77,
"total_res_clength": 1917,
"max_res_clength": 192,
"avg_res_clength": 95,
"req_rate": 20,
"err_rate": 2,
"apdex_threshold": 25,
"apdex_satisfied": 4,
"apdex_tolerated": 14,
"apdex_score": 0.55
},
"sys": {
"rss": 73764864,
"heapTotal": 36741120,
"heapUsed": 24076802,
"external": 2052014,
"cpu": 1.626538698068855,
"lag": 0.036661
}
},
"1588093327": {
"stats": {
"requests": 23,
"responses": 23,
"errors": 2,
"info": 0,
"success": 21,
"redirect": 0,
"client_error": 0,
"server_error": 2,
"total_time": 1170,
"max_time": 96,
"avg_time": 50.869565217391305,
"total_req_clength": 1286,
"max_req_clength": 206,
"avg_req_clength": 55,
"total_res_clength": 2458,
"max_res_clength": 201,
"avg_res_clength": 106,
"req_rate": 23,
"err_rate": 2,
"apdex_threshold": 25,
"apdex_satisfied": 6,
"apdex_tolerated": 15,
"apdex_score": 0.5869565217391305
},
"sys": {
"rss": 73764864,
"heapTotal": 36741120,
"heapUsed": 25065481,
"external": 2187041,
"cpu": 2.560722373167353,
"lag": 0.036224
}
},
"1588093328": {
"stats": {
"requests": 26,
"responses": 26,
"errors": 2,
"info": 0,
"success": 24,
"redirect": 0,
"client_error": 2,
"server_error": 0,
"total_time": 1495,
"max_time": 98,
"avg_time": 57.5,
"total_req_clength": 720,
"max_req_clength": 150,
"avg_req_clength": 27,
"total_res_clength": 2684,
"max_res_clength": 193,
"avg_res_clength": 103,
"req_rate": 26,
"err_rate": 2,
"apdex_threshold": 25,
"apdex_satisfied": 3,
"apdex_tolerated": 21,
"apdex_score": 0.5192307692307693
},
"sys": {
"rss": 73764864,
"heapTotal": 36741120,
"heapUsed": 24010981,
"external": 2049600,
"cpu": 2.547331916077647,
"lag": 0.035727
}
},
"1588093329": {
"stats": {
"requests": 18,
"responses": 18,
"errors": 2,
"info": 0,
"success": 16,
"redirect": 0,
"client_error": 2,
"server_error": 0,
"total_time": 1028,
"max_time": 96,
"avg_time": 57.111111111111114,
"total_req_clength": 668,
"max_req_clength": 189,
"avg_req_clength": 37,
"total_res_clength": 1429,
"max_res_clength": 198,
"avg_res_clength": 79,
"req_rate": 18,
"err_rate": 2,
"apdex_threshold": 25,
"apdex_satisfied": 4,
"apdex_tolerated": 12,
"apdex_score": 0.5555555555555556
},
"sys": {
"rss": 73764864,
"heapTotal": 36741120,
"heapUsed": 19155713,
"external": 1507257,
"cpu": 1.884250653120607,
"lag": 0.038118
}
},
"1588093330": {
"stats": {
"requests": 32,
"responses": 32,
"errors": 4,
"info": 0,
"success": 28,
"redirect": 0,
"client_error": 3,
"server_error": 1,
"total_time": 1620,
"max_time": 96,
"avg_time": 50.625,
"total_req_clength": 1446,
"max_req_clength": 202,
"avg_req_clength": 45,
"total_res_clength": 3350,
"max_res_clength": 197,
"avg_res_clength": 104,
"req_rate": 32,
"err_rate": 4,
"apdex_threshold": 25,
"apdex_satisfied": 7,
"apdex_tolerated": 21,
"apdex_score": 0.546875
},
"sys": {
"rss": 73764864,
"heapTotal": 36741120,
"heapUsed": 20409071,
"external": 1645877,
"cpu": 2.7842863715307264,
"lag": 0.03864
}
},
"1588093331": {
"stats": {
"requests": 23,
"responses": 23,
"errors": 4,
"info": 0,
"success": 19,
"redirect": 0,
"client_error": 3,
"server_error": 1,
"total_time": 1037,
"max_time": 98,
"avg_time": 45.08695652173913,
"total_req_clength": 1409,
"max_req_clength": 185,
"avg_req_clength": 61,
"total_res_clength": 2607,
"max_res_clength": 187,
"avg_res_clength": 113,
"req_rate": 23,
"err_rate": 4,
"apdex_threshold": 25,
"apdex_satisfied": 7,
"apdex_tolerated": 12,
"apdex_score": 0.5652173913043478
},
"sys": {
"rss": 73764864,
"heapTotal": 36741120,
"heapUsed": 21669897,
"external": 1781483,
"cpu": 2.8659074236269477,
"lag": 0.036436
}
},
"1588093332": {
"stats": {
"requests": 35,
"responses": 35,
"errors": 2,
"info": 0,
"success": 33,
"redirect": 0,
"client_error": 2,
"server_error": 0,
"total_time": 1593,
"max_time": 100,
"avg_time": 45.51428571428571,
"total_req_clength": 2150,
"max_req_clength": 208,
"avg_req_clength": 61,
"total_res_clength": 3370,
"max_res_clength": 198,
"avg_res_clength": 96,
"req_rate": 35,
"err_rate": 2,
"apdex_threshold": 25,
"apdex_satisfied": 6,
"apdex_tolerated": 27,
"apdex_score": 0.5571428571428572
},
"sys": {
"rss": 73764864,
"heapTotal": 36741120,
"heapUsed": 22840032,
"external": 1917040,
"cpu": 2.4501578253046605,
"lag": 1.849815
}
},
"1588093333": {
"stats": {
"requests": 20,
"responses": 20,
"errors": 3,
"info": 0,
"success": 17,
"redirect": 0,
"client_error": 2,
"server_error": 1,
"total_time": 1161,
"max_time": 97,
"avg_time": 58.05,
"total_req_clength": 547,
"max_req_clength": 121,
"avg_req_clength": 27,
"total_res_clength": 1897,
"max_res_clength": 202,
"avg_res_clength": 94,
"req_rate": 20,
"err_rate": 3,
"apdex_threshold": 25,
"apdex_satisfied": 3,
"apdex_tolerated": 14,
"apdex_score": 0.5
},
"sys": {
"rss": 73764864,
"heapTotal": 36741120,
"heapUsed": 24100305,
"external": 2052019,
"cpu": 2.0724092824258613,
"lag": 0.04868
}
},
"1588093334": {
"stats": {
"requests": 32,
"responses": 32,
"errors": 2,
"info": 0,
"success": 30,
"redirect": 0,
"client_error": 2,
"server_error": 0,
"total_time": 1609,
"max_time": 95,
"avg_time": 50.28125,
"total_req_clength": 2023,
"max_req_clength": 206,
"avg_req_clength": 63,
"total_res_clength": 3360,
"max_res_clength": 203,
"avg_res_clength": 105,
"req_rate": 32,
"err_rate": 2,
"apdex_threshold": 25,
"apdex_satisfied": 5,
"apdex_tolerated": 25,
"apdex_score": 0.546875
},
"sys": {
"rss": 73764864,
"heapTotal": 36741120,
"heapUsed": 25123809,
"external": 2191189,
"cpu": 3.0382591291693912,
"lag": 0.047287
}
},
"1588093335": {
"stats": {
"requests": 13,
"responses": 13,
"errors": 2,
"info": 0,
"success": 11,
"redirect": 0,
"client_error": 2,
"server_error": 0,
"total_time": 727,
"max_time": 99,
"avg_time": 55.92307692307692,
"total_req_clength": 957,
"max_req_clength": 201,
"avg_req_clength": 73,
"total_res_clength": 1600,
"max_res_clength": 199,
"avg_res_clength": 123,
"req_rate": 13,
"err_rate": 2,
"apdex_threshold": 25,
"apdex_satisfied": 3,
"apdex_tolerated": 8,
"apdex_score": 0.5384615384615384
},
"sys": {
"rss": 73764864,
"heapTotal": 36741120,
"heapUsed": 23966291,
"external": 2055357,
"cpu": 1.9254082568642377,
"lag": 0.038919
}
},
"1588093336": {
"stats": {
"requests": 24,
"responses": 24,
"errors": 2,
"info": 0,
"success": 22,
"redirect": 0,
"client_error": 1,
"server_error": 1,
"total_time": 974,
"max_time": 88,
"avg_time": 40.583333333333336,
"total_req_clength": 1523,
"max_req_clength": 199,
"avg_req_clength": 63,
"total_res_clength": 2300,
"max_res_clength": 194,
"avg_res_clength": 95,
"req_rate": 24,
"err_rate": 2,
"apdex_threshold": 25,
"apdex_satisfied": 8,
"apdex_tolerated": 14,
"apdex_score": 0.625
},
"sys": {
"rss": 73764864,
"heapTotal": 36741120,
"heapUsed": 19070131,
"external": 1503755,
"cpu": 1.9173139808846917,
"lag": 0.036821
}
},
"1588093337": {
"stats": {
"requests": 39,
"responses": 39,
"errors": 3,
"info": 0,
"success": 36,
"redirect": 0,
"client_error": 3,
"server_error": 0,
"total_time": 1905,
"max_time": 96,
"avg_time": 48.84615384615385,
"total_req_clength": 1436,
"max_req_clength": 205,
"avg_req_clength": 36,
"total_res_clength": 3417,
"max_res_clength": 201,
"avg_res_clength": 87,
"req_rate": 39,
"err_rate": 3,
"apdex_threshold": 25,
"apdex_satisfied": 6,
"apdex_tolerated": 30,
"apdex_score": 0.5384615384615384
},
"sys": {
"rss": 73764864,
"heapTotal": 36741120,
"heapUsed": 20285478,
"external": 1638691,
"cpu": 3.336869587514194,
"lag": 0.033396
}
},
"1588093338": {
"stats": {
"requests": 46,
"responses": 46,
"errors": 3,
"info": 0,
"success": 43,
"redirect": 0,
"client_error": 1,
"server_error": 2,
"total_time": 2311,
"max_time": 98,
"avg_time": 50.23913043478261,
"total_req_clength": 2324,
"max_req_clength": 210,
"avg_req_clength": 50,
"total_res_clength": 4619,
"max_res_clength": 201,
"avg_res_clength": 100,
"req_rate": 46,
"err_rate": 3,
"apdex_threshold": 25,
"apdex_satisfied": 12,
"apdex_tolerated": 31,
"apdex_score": 0.5978260869565217
},
"sys": {
"rss": 73764864,
"heapTotal": 36741120,
"heapUsed": 21947137,
"external": 1774397,
"cpu": 3.360248067465066,
"lag": 0.033353
}
},
"1588093339": {
"stats": {
"requests": 20,
"responses": 20,
"errors": 3,
"info": 0,
"success": 17,
"redirect": 0,
"client_error": 1,
"server_error": 2,
"total_time": 1007,
"max_time": 100,
"avg_time": 50.35,
"total_req_clength": 653,
"max_req_clength": 193,
"avg_req_clength": 32,
"total_res_clength": 1956,
"max_res_clength": 195,
"avg_res_clength": 97,
"req_rate": 20,
"err_rate": 3,
"apdex_threshold": 25,
"apdex_satisfied": 5,
"apdex_tolerated": 12,
"apdex_score": 0.55
},
"sys": {
"rss": 73764864,
"heapTotal": 36741120,
"heapUsed": 23486915,
"external": 1914570,
"cpu": 1.847639638563157,
"lag": 0.030142
}
},
"1588093340": {
"stats": {
"requests": 28,
"responses": 28,
"errors": 6,
"info": 0,
"success": 22,
"redirect": 0,
"client_error": 2,
"server_error": 4,
"total_time": 1271,
"max_time": 98,
"avg_time": 45.392857142857146,
"total_req_clength": 1678,
"max_req_clength": 204,
"avg_req_clength": 59,
"total_res_clength": 3429,
"max_res_clength": 196,
"avg_res_clength": 122,
"req_rate": 28,
"err_rate": 6,
"apdex_threshold": 25,
"apdex_satisfied": 7,
"apdex_tolerated": 15,
"apdex_score": 0.5178571428571429
},
"sys": {
"rss": 73764864,
"heapTotal": 36741120,
"heapUsed": 24682232,
"external": 2052453,
"cpu": 2.9120891618325944,
"lag": 0.074106
}
},
"1588093341": {
"stats": {
"requests": 20,
"responses": 20,
"errors": 0,
"info": 0,
"success": 20,
"redirect": 0,
"client_error": 0,
"server_error": 0,
"total_time": 1115,
"max_time": 92,
"avg_time": 55.75,
"total_req_clength": 1032,
"max_req_clength": 206,
"avg_req_clength": 51,
"total_res_clength": 2046,
"max_res_clength": 193,
"avg_res_clength": 102,
"req_rate": 20,
"err_rate": 0,
"apdex_threshold": 25,
"apdex_satisfied": 3,
"apdex_tolerated": 17,
"apdex_score": 0.575
},
"sys": {
"rss": 73764864,
"heapTotal": 36741120,
"heapUsed": 25848675,
"external": 2187146,
"cpu": 1.3177733068228523,
"lag": 0.048135
}
},
"1588093342": {
"stats": {
"requests": 28,
"responses": 28,
"errors": 3,
"info": 0,
"success": 25,
"redirect": 0,
"client_error": 1,
"server_error": 2,
"total_time": 1417,
"max_time": 100,
"avg_time": 50.607142857142854,
"total_req_clength": 1269,
"max_req_clength": 192,
"avg_req_clength": 45,
"total_res_clength": 2869,
"max_res_clength": 199,
"avg_res_clength": 102,
"req_rate": 28,
"err_rate": 3,
"apdex_threshold": 25,
"apdex_satisfied": 5,
"apdex_tolerated": 20,
"apdex_score": 0.5357142857142857
},
"sys": {
"rss": 73764864,
"heapTotal": 36741120,
"heapUsed": 21168345,
"external": 1736853,
"cpu": 2.7638782366151595,
"lag": 0.06344
}
},
"1588093343": {
"stats": {
"requests": 35,
"responses": 35,
"errors": 4,
"info": 0,
"success": 31,
"redirect": 0,
"client_error": 1,
"server_error": 3,
"total_time": 1872,
"max_time": 100,
"avg_time": 53.48571428571429,
"total_req_clength": 1508,
"max_req_clength": 204,
"avg_req_clength": 43,
"total_res_clength": 3637,
"max_res_clength": 200,
"avg_res_clength": 103,
"req_rate": 35,
"err_rate": 4,
"apdex_threshold": 25,
"apdex_satisfied": 9,
"apdex_tolerated": 22,
"apdex_score": 0.5714285714285714
},
"sys": {
"rss": 73764864,
"heapTotal": 36741120,
"heapUsed": 20020321,
"external": 1638044,
"cpu": 3.717785955130757,
"lag": 0.038502
}
},
"1588093344": {
"stats": {
"requests": 22,
"responses": 22,
"errors": 6,
"info": 0,
"success": 16,
"redirect": 0,
"client_error": 3,
"server_error": 3,
"total_time": 1096,
"max_time": 97,
"avg_time": 49.81818181818182,
"total_req_clength": 1153,
"max_req_clength": 207,
"avg_req_clength": 52,
"total_res_clength": 2092,
"max_res_clength": 202,
"avg_res_clength": 95,
"req_rate": 22,
"err_rate": 6,
"apdex_threshold": 25,
"apdex_satisfied": 5,
"apdex_tolerated": 11,
"apdex_score": 0.4772727272727273
},
"sys": {
"rss": 73764864,
"heapTotal": 36741120,
"heapUsed": 21165002,
"external": 1777152,
"cpu": 2.8889399104706057,
"lag": 0.049158
}
},
"1588093345": {
"stats": {
"requests": 21,
"responses": 21,
"errors": 1,
"info": 0,
"success": 20,
"redirect": 0,
"client_error": 1,
"server_error": 0,
"total_time": 912,
"max_time": 100,
"avg_time": 43.42857142857143,
"total_req_clength": 1590,
"max_req_clength": 171,
"avg_req_clength": 75,
"total_res_clength": 2163,
"max_res_clength": 201,
"avg_res_clength": 103,
"req_rate": 21,
"err_rate": 1,
"apdex_threshold": 25,
"apdex_satisfied": 8,
"apdex_tolerated": 12,
"apdex_score": 0.6666666666666666
},
"sys": {
"rss": 73764864,
"heapTotal": 36741120,
"heapUsed": 22283473,
"external": 1915431,
"cpu": 2.341292065973116,
"lag": 0.066504
}
},
"1588093346": {
"stats": {
"requests": 34,
"responses": 34,
"errors": 5,
"info": 0,
"success": 29,
"redirect": 0,
"client_error": 2,
"server_error": 3,
"total_time": 1648,
"max_time": 98,
"avg_time": 48.470588235294116,
"total_req_clength": 1291,
"max_req_clength": 188,
"avg_req_clength": 37,
"total_res_clength": 3574,
"max_res_clength": 203,
"avg_res_clength": 105,
"req_rate": 34,
"err_rate": 5,
"apdex_threshold": 25,
"apdex_satisfied": 8,
"apdex_tolerated": 21,
"apdex_score": 0.5441176470588235
},
"sys": {
"rss": 73764864,
"heapTotal": 36741120,
"heapUsed": 23554059,
"external": 2051246,
"cpu": 3.3564382028964297,
"lag": 0.059577
}
},
"1588093347": {
"stats": {
"requests": 20,
"responses": 20,
"errors": 6,
"info": 0,
"success": 14,
"redirect": 0,
"client_error": 4,
"server_error": 2,
"total_time": 981,
"max_time": 98,
"avg_time": 49.05,
"total_req_clength": 850,
"max_req_clength": 175,
"avg_req_clength": 42,
"total_res_clength": 2113,
"max_res_clength": 191,
"avg_res_clength": 105,
"req_rate": 20,
"err_rate": 6,
"apdex_threshold": 25,
"apdex_satisfied": 4,
"apdex_tolerated": 10,
"apdex_score": 0.45
},
"sys": {
"rss": 73764864,
"heapTotal": 36741120,
"heapUsed": 24648693,
"external": 2185193,
"cpu": 2.1327581336197605,
"lag": 0.043375
}
},
"1588093348": {
"stats": {
"requests": 21,
"responses": 21,
"errors": 4,
"info": 0,
"success": 17,
"redirect": 0,
"client_error": 4,
"server_error": 0,
"total_time": 1026,
"max_time": 91,
"avg_time": 48.857142857142854,
"total_req_clength": 847,
"max_req_clength": 185,
"avg_req_clength": 40,
"total_res_clength": 2492,
"max_res_clength": 199,
"avg_res_clength": 118,
"req_rate": 21,
"err_rate": 4,
"apdex_threshold": 25,
"apdex_satisfied": 5,
"apdex_tolerated": 12,
"apdex_score": 0.5238095238095238
},
"sys": {
"rss": 73764864,
"heapTotal": 36741120,
"heapUsed": 25608843,
"external": 2319055,
"cpu": 1.962467199874005,
"lag": 0.039406
}
},
"1588093349": {
"stats": {
"requests": 27,
"responses": 27,
"errors": 2,
"info": 0,
"success": 25,
"redirect": 0,
"client_error": 1,
"server_error": 1,
"total_time": 1294,
"max_time": 99,
"avg_time": 47.925925925925924,
"total_req_clength": 1658,
"max_req_clength": 208,
"avg_req_clength": 61,
"total_res_clength": 2576,
"max_res_clength": 198,
"avg_res_clength": 95,
"req_rate": 27,
"err_rate": 2,
"apdex_threshold": 25,
"apdex_satisfied": 8,
"apdex_tolerated": 17,
"apdex_score": 0.6111111111111112
},
"sys": {
"rss": 73764864,
"heapTotal": 36741120,
"heapUsed": 23215480,
"external": 1990562,
"cpu": 2.156275637836824,
"lag": 0.038102
}
},
"1588093350": {
"stats": {
"requests": 28,
"responses": 28,
"errors": 5,
"info": 0,
"success": 23,
"redirect": 0,
"client_error": 5,
"server_error": 0,
"total_time": 1429,
"max_time": 99,
"avg_time": 51.035714285714285,
"total_req_clength": 1249,
"max_req_clength": 193,
"avg_req_clength": 44,
"total_res_clength": 3082,
"max_res_clength": 195,
"avg_res_clength": 110,
"req_rate": 28,
"err_rate": 5,
"apdex_threshold": 25,
"apdex_satisfied": 4,
"apdex_tolerated": 19,
"apdex_score": 0.48214285714285715
},
"sys": {
"rss": 73764864,
"heapTotal": 36741120,
"heapUsed": 19952813,
"external": 1506251,
"cpu": 2.7071640829954027,
"lag": 0.035514
}
},
"1588093351": {
"stats": {
"requests": 28,
"responses": 28,
"errors": 2,
"info": 0,
"success": 26,
"redirect": 0,
"client_error": 1,
"server_error": 1,
"total_time": 1270,
"max_time": 93,
"avg_time": 45.357142857142854,
"total_req_clength": 1763,
"max_req_clength": 200,
"avg_req_clength": 62,
"total_res_clength": 2487,
"max_res_clength": 197,
"avg_res_clength": 88,
"req_rate": 28,
"err_rate": 2,
"apdex_threshold": 25,
"apdex_satisfied": 9,
"apdex_tolerated": 17,
"apdex_score": 0.625
},
"sys": {
"rss": 73764864,
"heapTotal": 36741120,
"heapUsed": 21057538,
"external": 1641335,
"cpu": 1.4879636535971372,
"lag": 0.028411
}
},
"1588093352": {
"stats": {
"requests": 24,
"responses": 24,
"errors": 3,
"info": 0,
"success": 21,
"redirect": 0,
"client_error": 1,
"server_error": 2,
"total_time": 1199,
"max_time": 98,
"avg_time": 49.958333333333336,
"total_req_clength": 787,
"max_req_clength": 142,
"avg_req_clength": 32,
"total_res_clength": 2383,
"max_res_clength": 174,
"avg_res_clength": 99,
"req_rate": 24,
"err_rate": 3,
"apdex_threshold": 25,
"apdex_satisfied": 6,
"apdex_tolerated": 15,
"apdex_score": 0.5625
},
"sys": {
"rss": 73764864,
"heapTotal": 36741120,
"heapUsed": 22227298,
"external": 1776364,
"cpu": 1.190604606663778,
"lag": 0.027186
}
},
"1588093353": {
"stats": {
"requests": 25,
"responses": 25,
"errors": 0,
"info": 0,
"success": 25,
"redirect": 0,
"client_error": 0,
"server_error": 0,
"total_time": 1259,
"max_time": 99,
"avg_time": 50.36,
"total_req_clength": 1122,
"max_req_clength": 165,
"avg_req_clength": 44,
"total_res_clength": 2204,
"max_res_clength": 186,
"avg_res_clength": 88,
"req_rate": 25,
"err_rate": 0,
"apdex_threshold": 25,
"apdex_satisfied": 5,
"apdex_tolerated": 20,
"apdex_score": 0.6
},
"sys": {
"rss": 73764864,
"heapTotal": 36741120,
"heapUsed": 23332129,
"external": 1910798,
"cpu": 1.4771758064135279,
"lag": 0.252796
}
},
"1588093354": {
"stats": {
"requests": 24,
"responses": 24,
"errors": 1,
"info": 0,
"success": 23,
"redirect": 0,
"client_error": 1,
"server_error": 0,
"total_time": 1347,
"max_time": 100,
"avg_time": 56.125,
"total_req_clength": 1133,
"max_req_clength": 191,
"avg_req_clength": 47,
"total_res_clength": 2796,
"max_res_clength": 199,
"avg_res_clength": 116,
"req_rate": 24,
"err_rate": 1,
"apdex_threshold": 25,
"apdex_satisfied": 2,
"apdex_tolerated": 21,
"apdex_score": 0.5208333333333334
},
"sys": {
"rss": 73764864,
"heapTotal": 36741120,
"heapUsed": 24538029,
"external": 2050120,
"cpu": 2.762364973869414,
"lag": 0.043671
}
},
"1588093355": {
"stats": {
"requests": 25,
"responses": 25,
"errors": 5,
"info": 0,
"success": 20,
"redirect": 0,
"client_error": 5,
"server_error": 0,
"total_time": 945,
"max_time": 97,
"avg_time": 37.8,
"total_req_clength": 1567,
"max_req_clength": 210,
"avg_req_clength": 62,
"total_res_clength": 2652,
"max_res_clength": 198,
"avg_res_clength": 106,
"req_rate": 25,
"err_rate": 5,
"apdex_threshold": 25,
"apdex_satisfied": 6,
"apdex_tolerated": 14,
"apdex_score": 0.52
},
"sys": {
"rss": 73764864,
"heapTotal": 36741120,
"heapUsed": 25744890,
"external": 2188733,
"cpu": 2.5647772543208234,
"lag": 0.043334
}
},
"1588093356": {
"stats": {
"requests": 21,
"responses": 21,
"errors": 5,
"info": 0,
"success": 16,
"redirect": 0,
"client_error": 4,
"server_error": 1,
"total_time": 1214,
"max_time": 99,
"avg_time": 57.80952380952381,
"total_req_clength": 970,
"max_req_clength": 203,
"avg_req_clength": 46,
"total_res_clength": 1854,
"max_res_clength": 198,
"avg_res_clength": 88,
"req_rate": 21,
"err_rate": 5,
"apdex_threshold": 25,
"apdex_satisfied": 2,
"apdex_tolerated": 14,
"apdex_score": 0.42857142857142855
},
"sys": {
"rss": 73886574,
"heapTotal": 36741120,
"heapUsed": 23205776,
"external": 1914977,
"cpu": 2.4633974778722925,
"lag": 0.040597
}
},
"1588093357": {
"stats": {
"requests": 15,
"responses": 15,
"errors": 4,
"info": 0,
"success": 11,
"redirect": 0,
"client_error": 3,
"server_error": 1,
"total_time": 696,
"max_time": 99,
"avg_time": 46.4,
"total_req_clength": 711,
"max_req_clength": 197,
"avg_req_clength": 47,
"total_res_clength": 1638,
"max_res_clength": 199,
"avg_res_clength": 109,
"req_rate": 15,
"err_rate": 4,
"apdex_threshold": 25,
"apdex_satisfied": 2,
"apdex_tolerated": 9,
"apdex_score": 0.43333333333333335
},
"sys": {
"rss": 73977856,
"heapTotal": 36741120,
"heapUsed": 19365321,
"external": 1504178,
"cpu": 1.7119514670036935,
"lag": 0.046086
}
},
"1588093358": {
"stats": {
"requests": 21,
"responses": 21,
"errors": 0,
"info": 0,
"success": 21,
"redirect": 0,
"client_error": 0,
"server_error": 0,
"total_time": 1100,
"max_time": 97,
"avg_time": 52.38095238095238,
"total_req_clength": 724,
"max_req_clength": 134,
"avg_req_clength": 34,
"total_res_clength": 2420,
"max_res_clength": 199,
"avg_res_clength": 115,
"req_rate": 21,
"err_rate": 0,
"apdex_threshold": 25,
"apdex_satisfied": 4,
"apdex_tolerated": 17,
"apdex_score": 0.5952380952380952
},
"sys": {
"rss": 73977856,
"heapTotal": 36741120,
"heapUsed": 20090911,
"external": 1637153,
"cpu": 2.532131924081231,
"lag": 0.039959
}
},
"1588093359": {
"stats": {
"requests": 19,
"responses": 19,
"errors": 2,
"info": 0,
"success": 17,
"redirect": 0,
"client_error": 1,
"server_error": 1,
"total_time": 1003,
"max_time": 100,
"avg_time": 52.78947368421053,
"total_req_clength": 1290,
"max_req_clength": 197,
"avg_req_clength": 67,
"total_res_clength": 1744,
"max_res_clength": 189,
"avg_res_clength": 91,
"req_rate": 19,
"err_rate": 2,
"apdex_threshold": 25,
"apdex_satisfied": 4,
"apdex_tolerated": 13,
"apdex_score": 0.5526315789473685
},
"sys": {
"rss": 73977856,
"heapTotal": 36741120,
"heapUsed": 20966735,
"external": 1771233,
"cpu": 2.2868132815216007,
"lag": 0.651047
}
},
"1588093360": {
"stats": {
"requests": 20,
"responses": 20,
"errors": 2,
"info": 0,
"success": 18,
"redirect": 0,
"client_error": 1,
"server_error": 1,
"total_time": 864,
"max_time": 94,
"avg_time": 43.2,
"total_req_clength": 861,
"max_req_clength": 187,
"avg_req_clength": 43,
"total_res_clength": 2384,
"max_res_clength": 194,
"avg_res_clength": 119,
"req_rate": 20,
"err_rate": 2,
"apdex_threshold": 25,
"apdex_satisfied": 7,
"apdex_tolerated": 11,
"apdex_score": 0.625
},
"sys": {
"rss": 73977856,
"heapTotal": 36741120,
"heapUsed": 21916603,
"external": 1909965,
"cpu": 1.9388896811232033,
"lag": 0.048814
}
},
"1588093361": {
"stats": {
"requests": 15,
"responses": 15,
"errors": 2,
"info": 0,
"success": 13,
"redirect": 0,
"client_error": 0,
"server_error": 2,
"total_time": 722,
"max_time": 88,
"avg_time": 48.13333333333333,
"total_req_clength": 657,
"max_req_clength": 206,
"avg_req_clength": 43,
"total_res_clength": 1601,
"max_res_clength": 199,
"avg_res_clength": 106,
"req_rate": 15,
"err_rate": 2,
"apdex_threshold": 25,
"apdex_satisfied": 4,
"apdex_tolerated": 9,
"apdex_score": 0.5666666666666667
},
"sys": {
"rss": 73977856,
"heapTotal": 36741120,
"heapUsed": 22725769,
"external": 2047210,
"cpu": 1.6866602960941097,
"lag": 0.038996
}
},
"1588093362": {
"stats": {
"requests": 28,
"responses": 28,
"errors": 3,
"info": 0,
"success": 25,
"redirect": 0,
"client_error": 3,
"server_error": 0,
"total_time": 1460,
"max_time": 99,
"avg_time": 52.142857142857146,
"total_req_clength": 1394,
"max_req_clength": 187,
"avg_req_clength": 49,
"total_res_clength": 2936,
"max_res_clength": 199,
"avg_res_clength": 104,
"req_rate": 28,
"err_rate": 3,
"apdex_threshold": 25,
"apdex_satisfied": 7,
"apdex_tolerated": 18,
"apdex_score": 0.5714285714285714
},
"sys": {
"rss": 73977856,
"heapTotal": 36741120,
"heapUsed": 23846353,
"external": 2181598,
"cpu": 2.505626343880352,
"lag": 0.052258
}
},
"1588093363": {
"stats": {
"requests": 28,
"responses": 28,
"errors": 5,
"info": 0,
"success": 23,
"redirect": 0,
"client_error": 4,
"server_error": 1,
"total_time": 1677,
"max_time": 98,
"avg_time": 59.892857142857146,
"total_req_clength": 889,
"max_req_clength": 197,
"avg_req_clength": 31,
"total_res_clength": 2623,
"max_res_clength": 201,
"avg_res_clength": 93,
"req_rate": 28,
"err_rate": 5,
"apdex_threshold": 25,
"apdex_satisfied": 3,
"apdex_tolerated": 20,
"apdex_score": 0.4642857142857143
},
"sys": {
"rss": 73977856,
"heapTotal": 36741120,
"heapUsed": 24853362,
"external": 2315416,
"cpu": 2.1818431968844685,
"lag": 0.038622
}
},
"1588093364": {
"stats": {
"requests": 19,
"responses": 19,
"errors": 2,
"info": 0,
"success": 17,
"redirect": 0,
"client_error": 0,
"server_error": 2,
"total_time": 1015,
"max_time": 95,
"avg_time": 53.421052631578945,
"total_req_clength": 917,
"max_req_clength": 180,
"avg_req_clength": 48,
"total_res_clength": 2038,
"max_res_clength": 202,
"avg_res_clength": 107,
"req_rate": 19,
"err_rate": 2,
"apdex_threshold": 25,
"apdex_satisfied": 4,
"apdex_tolerated": 13,
"apdex_score": 0.5526315789473685
},
"sys": {
"rss": 73977856,
"heapTotal": 36741120,
"heapUsed": 25930435,
"external": 2449100,
"cpu": 2.1057517442363727,
"lag": 0.09267
}
},
"1588093365": {
"stats": {
"requests": 31,
"responses": 31,
"errors": 6,
"info": 0,
"success": 25,
"redirect": 0,
"client_error": 4,
"server_error": 2,
"total_time": 1784,
"max_time": 98,
"avg_time": 57.54838709677419,
"total_req_clength": 1136,
"max_req_clength": 173,
"avg_req_clength": 36,
"total_res_clength": 2790,
"max_res_clength": 201,
"avg_res_clength": 90,
"req_rate": 31,
"err_rate": 5,
"apdex_threshold": 25,
"apdex_satisfied": 5,
"apdex_tolerated": 20,
"apdex_score": 0.4838709677419355
},
"sys": {
"rss": 62924507,
"heapTotal": 25506377,
"heapUsed": 21132401,
"external": 1795185,
"cpu": 4.10721788855931,
"lag": 0.042131
}
},
"1588093366": {
"stats": {
"requests": 21,
"responses": 21,
"errors": 2,
"info": 0,
"success": 19,
"redirect": 0,
"client_error": 2,
"server_error": 0,
"total_time": 1155,
"max_time": 96,
"avg_time": 55,
"total_req_clength": 853,
"max_req_clength": 195,
"avg_req_clength": 40,
"total_res_clength": 1673,
"max_res_clength": 189,
"avg_res_clength": 79,
"req_rate": 21,
"err_rate": 2,
"apdex_threshold": 25,
"apdex_satisfied": 2,
"apdex_tolerated": 17,
"apdex_score": 0.5
},
"sys": {
"rss": 58122825,
"heapTotal": 21012480,
"heapUsed": 18982214,
"external": 1464809,
"cpu": 2.791319096596079,
"lag": 0.044668
}
},
"1588093367": {
"stats": {
"requests": 17,
"responses": 17,
"errors": 0,
"info": 0,
"success": 17,
"redirect": 0,
"client_error": 0,
"server_error": 0,
"total_time": 998,
"max_time": 93,
"avg_time": 58.705882352941174,
"total_req_clength": 612,
"max_req_clength": 184,
"avg_req_clength": 36,
"total_res_clength": 1641,
"max_res_clength": 192,
"avg_res_clength": 96,
"req_rate": 17,
"err_rate": 0,
"apdex_threshold": 25,
"apdex_satisfied": 3,
"apdex_tolerated": 14,
"apdex_score": 0.5882352941176471
},
"sys": {
"rss": 58370926,
"heapTotal": 21461870,
"heapUsed": 18886707,
"external": 1445883,
"cpu": 3.071822693677625,
"lag": 0.050659
}
},
"1588093368": {
"stats": {
"requests": 44,
"responses": 44,
"errors": 5,
"info": 0,
"success": 39,
"redirect": 0,
"client_error": 1,
"server_error": 4,
"total_time": 2392,
"max_time": 99,
"avg_time": 54.36363636363637,
"total_req_clength": 1967,
"max_req_clength": 200,
"avg_req_clength": 44,
"total_res_clength": 3985,
"max_res_clength": 203,
"avg_res_clength": 90,
"req_rate": 44,
"err_rate": 4,
"apdex_threshold": 25,
"apdex_satisfied": 8,
"apdex_tolerated": 31,
"apdex_score": 0.5340909090909091
},
"sys": {
"rss": 59241033,
"heapTotal": 22061056,
"heapUsed": 19014303,
"external": 1446710,
"cpu": 5.733067540274729,
"lag": 0.051583
}
},
"1588093369": {
"stats": {
"requests": 10,
"responses": 10,
"errors": 3,
"info": 0,
"success": 7,
"redirect": 0,
"client_error": 3,
"server_error": 0,
"total_time": 469,
"max_time": 93,
"avg_time": 46.9,
"total_req_clength": 426,
"max_req_clength": 171,
"avg_req_clength": 42,
"total_res_clength": 784,
"max_res_clength": 173,
"avg_res_clength": 78,
"req_rate": 10,
"err_rate": 3,
"apdex_threshold": 25,
"apdex_satisfied": 2,
"apdex_tolerated": 5,
"apdex_score": 0.45
},
"sys": {
"rss": 59539456,
"heapTotal": 22061056,
"heapUsed": 19352278,
"external": 1447656,
"cpu": 1.1848769817757712,
"lag": 0.212681
}
},
"1588093370": {
"stats": {
"requests": 30,
"responses": 30,
"errors": 3,
"info": 0,
"success": 27,
"redirect": 0,
"client_error": 2,
"server_error": 1,
"total_time": 1713,
"max_time": 97,
"avg_time": 57.1,
"total_req_clength": 1403,
"max_req_clength": 206,
"avg_req_clength": 46,
"total_res_clength": 2602,
"max_res_clength": 197,
"avg_res_clength": 86,
"req_rate": 30,
"err_rate": 3,
"apdex_threshold": 25,
"apdex_satisfied": 5,
"apdex_tolerated": 22,
"apdex_score": 0.5333333333333333
},
"sys": {
"rss": 59539456,
"heapTotal": 22061056,
"heapUsed": 19298255,
"external": 1451255,
"cpu": 2.9446360784170187,
"lag": 0.437293
}
},
"1588093371": {
"stats": {
"requests": 19,
"responses": 19,
"errors": 2,
"info": 0,
"success": 17,
"redirect": 0,
"client_error": 2,
"server_error": 0,
"total_time": 916,
"max_time": 98,
"avg_time": 48.21052631578947,
"total_req_clength": 789,
"max_req_clength": 163,
"avg_req_clength": 41,
"total_res_clength": 1772,
"max_res_clength": 189,
"avg_res_clength": 93,
"req_rate": 19,
"err_rate": 2,
"apdex_threshold": 25,
"apdex_satisfied": 6,
"apdex_tolerated": 11,
"apdex_score": 0.6052631578947368
},
"sys": {
"rss": 59539456,
"heapTotal": 22061056,
"heapUsed": 19279294,
"external": 1511213,
"cpu": 2.297047862743695,
"lag": 0.604641
}
},
"1588093372": {
"stats": {
"requests": 35,
"responses": 35,
"errors": 3,
"info": 0,
"success": 32,
"redirect": 0,
"client_error": 1,
"server_error": 2,
"total_time": 1630,
"max_time": 92,
"avg_time": 46.57142857142857,
"total_req_clength": 1834,
"max_req_clength": 181,
"avg_req_clength": 52,
"total_res_clength": 3309,
"max_res_clength": 199,
"avg_res_clength": 94,
"req_rate": 35,
"err_rate": 3,
"apdex_threshold": 25,
"apdex_satisfied": 7,
"apdex_tolerated": 25,
"apdex_score": 0.5571428571428572
},
"sys": {
"rss": 59539456,
"heapTotal": 22061056,
"heapUsed": 19107458,
"external": 1510514,
"cpu": 3.6450055521546667,
"lag": 0.08222
}
},
"1588093373": {
"stats": {
"requests": 46,
"responses": 46,
"errors": 3,
"info": 0,
"success": 43,
"redirect": 0,
"client_error": 2,
"server_error": 1,
"total_time": 2359,
"max_time": 99,
"avg_time": 51.28260869565217,
"total_req_clength": 2416,
"max_req_clength": 199,
"avg_req_clength": 52,
"total_res_clength": 4226,
"max_res_clength": 180,
"avg_res_clength": 91,
"req_rate": 46,
"err_rate": 3,
"apdex_threshold": 25,
"apdex_satisfied": 11,
"apdex_tolerated": 32,
"apdex_score": 0.5869565217391305
},
"sys": {
"rss": 59539456,
"heapTotal": 22061056,
"heapUsed": 19256590,
"external": 1454548,
"cpu": 4.428774739973542,
"lag": 0.571222
}
},
"1588093374": {
"stats": {
"requests": 20,
"responses": 20,
"errors": 1,
"info": 0,
"success": 19,
"redirect": 0,
"client_error": 0,
"server_error": 1,
"total_time": 1257,
"max_time": 97,
"avg_time": 62.85,
"total_req_clength": 578,
"max_req_clength": 169,
"avg_req_clength": 28,
"total_res_clength": 2272,
"max_res_clength": 187,
"avg_res_clength": 113,
"req_rate": 20,
"err_rate": 1,
"apdex_threshold": 25,
"apdex_satisfied": 1,
"apdex_tolerated": 18,
"apdex_score": 0.5
},
"sys": {
"rss": 59539456,
"heapTotal": 22061056,
"heapUsed": 19194377,
"external": 1492750,
"cpu": 2.3213625620952487,
"lag": 0.039826
}
},
"1588093375": {
"stats": {
"requests": 20,
"responses": 20,
"errors": 1,
"info": 0,
"success": 19,
"redirect": 0,
"client_error": 1,
"server_error": 0,
"total_time": 991,
"max_time": 94,
"avg_time": 49.55,
"total_req_clength": 860,
"max_req_clength": 183,
"avg_req_clength": 43,
"total_res_clength": 2461,
"max_res_clength": 197,
"avg_res_clength": 123,
"req_rate": 20,
"err_rate": 1,
"apdex_threshold": 25,
"apdex_satisfied": 5,
"apdex_tolerated": 14,
"apdex_score": 0.6
},
"sys": {
"rss": 59539456,
"heapTotal": 22959835,
"heapUsed": 19207573,
"external": 1459292,
"cpu": 2.470910080352385,
"lag": 0.053224
}
},
"1588093376": {
"stats": {
"requests": 36,
"responses": 36,
"errors": 4,
"info": 0,
"success": 32,
"redirect": 0,
"client_error": 3,
"server_error": 1,
"total_time": 1940,
"max_time": 100,
"avg_time": 53.888888888888886,
"total_req_clength": 1041,
"max_req_clength": 171,
"avg_req_clength": 28,
"total_res_clength": 4235,
"max_res_clength": 203,
"avg_res_clength": 117,
"req_rate": 36,
"err_rate": 4,
"apdex_threshold": 25,
"apdex_satisfied": 6,
"apdex_tolerated": 26,
"apdex_score": 0.5277777777777778
},
"sys": {
"rss": 60039168,
"heapTotal": 24158208,
"heapUsed": 19765240,
"external": 1502164,
"cpu": 4.03756070944782,
"lag": 0.047446
}
},
"1588093377": {
"stats": {
"requests": 25,
"responses": 25,
"errors": 0,
"info": 0,
"success": 25,
"redirect": 0,
"client_error": 0,
"server_error": 0,
"total_time": 1149,
"max_time": 98,
"avg_time": 45.96,
"total_req_clength": 1285,
"max_req_clength": 203,
"avg_req_clength": 51,
"total_res_clength": 2275,
"max_res_clength": 197,
"avg_res_clength": 91,
"req_rate": 25,
"err_rate": 0,
"apdex_threshold": 25,
"apdex_satisfied": 7,
"apdex_tolerated": 18,
"apdex_score": 0.64
},
"sys": {
"rss": 60616704,
"heapTotal": 24158208,
"heapUsed": 19369841,
"external": 1520494,
"cpu": 2.458837398506848,
"lag": 0.04581
}
},
"1588093378": {
"stats": {
"requests": 17,
"responses": 17,
"errors": 3,
"info": 0,
"success": 14,
"redirect": 0,
"client_error": 2,
"server_error": 1,
"total_time": 664,
"max_time": 98,
"avg_time": 39.05882352941177,
"total_req_clength": 691,
"max_req_clength": 170,
"avg_req_clength": 40,
"total_res_clength": 1843,
"max_res_clength": 203,
"avg_res_clength": 108,
"req_rate": 17,
"err_rate": 3,
"apdex_threshold": 25,
"apdex_satisfied": 7,
"apdex_tolerated": 7,
"apdex_score": 0.6176470588235294
},
"sys": {
"rss": 60964279,
"heapTotal": 24158208,
"heapUsed": 20103174,
"external": 1653549,
"cpu": 1.9286868748144468,
"lag": 0.04257
}
},
"1588093379": {
"stats": {
"requests": 21,
"responses": 21,
"errors": 2,
"info": 0,
"success": 19,
"redirect": 0,
"client_error": 1,
"server_error": 1,
"total_time": 938,
"max_time": 87,
"avg_time": 44.666666666666664,
"total_req_clength": 1252,
"max_req_clength": 202,
"avg_req_clength": 59,
"total_res_clength": 2565,
"max_res_clength": 199,
"avg_res_clength": 122,
"req_rate": 21,
"err_rate": 2,
"apdex_threshold": 25,
"apdex_satisfied": 6,
"apdex_tolerated": 13,
"apdex_score": 0.5952380952380952
},
"sys": {
"rss": 61582190,
"heapTotal": 24158208,
"heapUsed": 19839255,
"external": 1633434,
"cpu": 2.1236168847097656,
"lag": 0.038602
}
},
"1588093380": {
"stats": {
"requests": 0,
"responses": 0,
"errors": 0,
"info": 0,
"success": 0,
"redirect": 0,
"client_error": 0,
"server_error": 0,
"total_time": 0,
"max_time": 0,
"avg_time": 0,
"total_req_clength": 0,
"max_req_clength": 0,
"avg_req_clength": 0,
"total_res_clength": 0,
"max_res_clength": 0,
"avg_res_clength": 0,
"req_rate": 0,
"err_rate": 0,
"apdex_threshold": 25,
"apdex_satisfied": 0,
"apdex_tolerated": 0,
"apdex_score": 0
},
"sys": {
"rss": 61698048,
"heapTotal": 24158208,
"heapUsed": 19610040,
"external": 1576443,
"cpu": 0.14810571223236643
}
}
}
},
"errors": {
"statuscode": {
"401": 213,
"404": 702,
"500": 224,
"501": 263
},
"topnotfound": {
"/v2/pet": 60,
"/v2/store/inventory": 27,
"/v2/user/abcde": 104,
"/v2/pet/findByStatus": 28,
"/v2/user/logout": 38,
"/v2/user/createWithList": 35,
"/v2/pet/findByTags": 34,
"/v2/pet/12345": 113,
"/v2/pet/12345/uploadImage": 46,
"/v2/user/createWithArray": 37,
"/v2/user/login": 40,
"/v2/user": 28,
"/v2/store/order/12345": 83,
"/v2/store/order": 29
},
"topservererror": {
"/v2/user/createWithList": 15,
"/v2/user/abcde": 31,
"/v2/pet": 23,
"/v2/user/logout": 17,
"/v2/pet/12345": 33,
"/v2/pet/findByTags": 13,
"/v2/user": 20,
"/v2/user/createWithArray": 11,
"/v2/store/order/12345": 18,
"/v2/user/login": 9,
"/v2/pet/findByStatus": 9,
"/v2/pet/12345/uploadImage": 7,
"/v2/store/inventory": 12,
"/v2/store/order": 6
}
}
}
================================================
FILE: src/data/hitsdata.json
================================================
[
{
"path": "/pets",
"method": "GET",
"query": "GET /pets",
"startts": 1591661376075,
"endts": 1591661376117,
"responsetime": 42,
"node": {
"name": "swagger-stats-fastify",
"version": "0.95.17",
"hostname": "sv5",
"ip": "192.168.1.71"
},
"http": {
"request": {
"url": "/pets",
"headers": {
"x-sws-res": "{\"code\":\"200\",\"message\":\"OK\",\"delay\":40,\"payloadsize\":110}",
"host": "localhost:3040",
"connection": "close"
},
"clength": 0,
"route_path": "/pet*",
"query": {}
},
"response": {
"code": 200,
"class": "success",
"phrase": "OK",
"headers": {},
"clength": 110
}
},
"ip": "127.0.0.1",
"real_ip": "127.0.0.1",
"port": 3040,
"@timestamp": "2020-06-09T00:09:36.075Z",
"api": {
"path": "/pets",
"query": "GET /pets",
"swagger": true,
"deprecated": false,
"operationId": "findPets",
"params": {}
}
},
{
"path": "/pets/abcde",
"method": "GET",
"query": "GET /pets/abcde",
"startts": 1591661375503,
"endts": 1591661375578,
"responsetime": 75,
"node": {
"name": "swagger-stats-fastify",
"version": "0.95.17",
"hostname": "sv5",
"ip": "192.168.1.71"
},
"http": {
"request": {
"url": "/pets/abcde",
"headers": {
"x-sws-res": "{\"code\":\"200\",\"message\":\"OK\",\"delay\":74,\"payloadsize\":53}",
"host": "localhost:3040",
"connection": "close"
},
"clength": 0,
"route_path": "/pet*",
"query": {}
},
"response": {
"code": 200,
"class": "success",
"phrase": "OK",
"headers": {},
"clength": 53
}
},
"ip": "127.0.0.1",
"real_ip": "127.0.0.1",
"port": 3040,
"@timestamp": "2020-06-09T00:09:35.503Z",
"api": {
"path": "/pets/{id}",
"query": "GET /pets/{id}",
"swagger": true,
"deprecated": false,
"operationId": "find pet by id",
"params": {
"id": "abcde"
}
}
},
{
"path": "/pets",
"method": "GET",
"query": "GET /pets",
"startts": 1591661375502,
"endts": 1591661375542,
"responsetime": 40,
"node": {
"name": "swagger-stats-fastify",
"version": "0.95.17",
"hostname": "sv5",
"ip": "192.168.1.71"
},
"http": {
"request": {
"url": "/pets",
"headers": {
"x-sws-res": "{\"code\":\"200\",\"message\":\"OK\",\"delay\":39,\"payloadsize\":109}",
"host": "localhost:3040",
"connection": "close"
},
"clength": 0,
"route_path": "/pet*",
"query": {}
},
"response": {
"code": 200,
"class": "success",
"phrase": "OK",
"headers": {},
"clength": 109
}
},
"ip": "127.0.0.1",
"real_ip": "127.0.0.1",
"port": 3040,
"@timestamp": "2020-06-09T00:09:35.502Z",
"api": {
"path": "/pets",
"query": "GET /pets",
"swagger": true,
"deprecated": false,
"operationId": "findPets",
"params": {}
}
},
{
"path": "/pets",
"method": "POST",
"query": "POST /pets",
"startts": 1591661375502,
"endts": 1591661375551,
"responsetime": 49,
"node": {
"name": "swagger-stats-fastify",
"version": "0.95.17",
"hostname": "sv5",
"ip": "192.168.1.71"
},
"http": {
"request": {
"url": "/pets",
"headers": {
"x-sws-res": "{\"code\":\"200\",\"message\":\"OK\",\"delay\":48,\"payloadsize\":77}",
"content-type": "application/json",
"content-length": "184",
"host": "localhost:3040",
"connection": "close"
},
"clength": 184,
"route_path": "/pet*",
"query": {}
},
"response": {
"code": 200,
"class": "success",
"phrase": "OK",
"headers": {},
"clength": 77
}
},
"ip": "127.0.0.1",
"real_ip": "127.0.0.1",
"port": 3040,
"@timestamp": "2020-06-09T00:09:35.502Z",
"api": {
"path": "/pets",
"query": "POST /pets",
"swagger": true,
"deprecated": false,
"operationId": "addPet"
}
},
{
"path": "/pets/abcde",
"method": "GET",
"query": "GET /pets/abcde",
"startts": 1591661375059,
"endts": 1591661375070,
"responsetime": 11,
"node": {
"name": "swagger-stats-fastify",
"version": "0.95.17",
"hostname": "sv5",
"ip": "192.168.1.71"
},
"http": {
"request": {
"url": "/pets/abcde",
"headers": {
"x-sws-res": "{\"code\":\"200\",\"message\":\"OK\",\"delay\":10,\"payloadsize\":76}",
"host": "localhost:3040",
"connection": "close"
},
"clength": 0,
"route_path": "/pet*",
"query": {}
},
"response": {
"code": 200,
"class": "success",
"phrase": "OK",
"headers": {},
"clength": 76
}
},
"ip": "127.0.0.1",
"real_ip": "127.0.0.1",
"port": 3040,
"@timestamp": "2020-06-09T00:09:35.059Z",
"api": {
"path": "/pets/{id}",
"query": "GET /pets/{id}",
"swagger": true,
"deprecated": false,
"operationId": "find pet by id",
"params": {
"id": "abcde"
}
}
},
{
"path": "/pets",
"method": "POST",
"query": "POST /pets",
"startts": 1591661375058,
"endts": 1591661375125,
"responsetime": 67,
"node": {
"name": "swagger-stats-fastify",
"version": "0.95.17",
"hostname": "sv5",
"ip": "192.168.1.71"
},
"http": {
"request": {
"url": "/pets",
"headers": {
"x-sws-res": "{\"code\":\"200\",\"message\":\"OK\",\"delay\":66,\"payloadsize\":72}",
"content-type": "application/json",
"content-length": "82",
"host": "localhost:3040",
"connection": "close"
},
"clength": 82,
"route_path": "/pet*",
"query": {}
},
"response": {
"code": 200,
"class": "success",
"phrase": "OK",
"headers": {},
"clength": 72
}
},
"ip": "127.0.0.1",
"real_ip": "127.0.0.1",
"port": 3040,
"@timestamp": "2020-06-09T00:09:35.058Z",
"api": {
"path": "/pets",
"query": "POST /pets",
"swagger": true,
"deprecated": false,
"operationId": "addPet"
}
},
{
"path": "/pets",
"method": "GET",
"query": "GET /pets",
"startts": 1591661375057,
"endts": 1591661375083,
"responsetime": 26,
"node": {
"name": "swagger-stats-fastify",
"version": "0.95.17",
"hostname": "sv5",
"ip": "192.168.1.71"
},
"http": {
"request": {
"url": "/pets",
"headers": {
"x-sws-res": "{\"code\":\"200\",\"message\":\"OK\",\"delay\":26,\"payloadsize\":158}",
"host": "localhost:3040",
"connection": "close"
},
"clength": 0,
"route_path": "/pet*",
"query": {}
},
"response": {
"code": 200,
"class": "success",
"phrase": "OK",
"headers": {},
"clength": 158
}
},
"ip": "127.0.0.1",
"real_ip": "127.0.0.1",
"port": 3040,
"@timestamp": "2020-06-09T00:09:35.057Z",
"api": {
"path": "/pets",
"query": "GET /pets",
"swagger": true,
"deprecated": false,
"operationId": "findPets",
"params": {}
}
},
{
"path": "/pets",
"method": "POST",
"query": "POST /pets",
"startts": 1591661374819,
"endts": 1591661374867,
"responsetime": 48,
"node": {
"name": "swagger-stats-fastify",
"version": "0.95.17",
"hostname": "sv5",
"ip": "192.168.1.71"
},
"http": {
"request": {
"url": "/pets",
"headers": {
"x-sws-res": "{\"code\":\"200\",\"message\":\"OK\",\"delay\":47,\"payloadsize\":81}",
"content-type": "application/json",
"content-length": "37",
"host": "localhost:3040",
"connection": "close"
},
"clength": 37,
"route_path": "/pet*",
"query": {}
},
"response": {
"code": 200,
"class": "success",
"phrase": "OK",
"headers": {},
"clength": 81
}
},
"ip": "127.0.0.1",
"real_ip": "127.0.0.1",
"port": 3040,
"@timestamp": "2020-06-09T00:09:34.819Z",
"api": {
"path": "/pets",
"query": "POST /pets",
"swagger": true,
"deprecated": false,
"operationId": "addPet"
}
},
{
"path": "/pets/abcde",
"method": "GET",
"query": "GET /pets/abcde",
"startts": 1591661374819,
"endts": 1591661374895,
"responsetime": 76,
"node": {
"name": "swagger-stats-fastify",
"version": "0.95.17",
"hostname": "sv5",
"ip": "192.168.1.71"
},
"http": {
"request": {
"url": "/pets/abcde",
"headers": {
"x-sws-res": "{\"code\":\"200\",\"message\":\"OK\",\"delay\":76,\"payloadsize\":126}",
"host": "localhost:3040",
"connection": "close"
},
"clength": 0,
"route_path": "/pet*",
"query": {}
},
"response": {
"code": 200,
"class": "success",
"phrase": "OK",
"headers": {},
"clength": 126
}
},
"ip": "127.0.0.1",
"real_ip": "127.0.0.1",
"port": 3040,
"@timestamp": "2020-06-09T00:09:34.819Z",
"api": {
"path": "/pets/{id}",
"query": "GET /pets/{id}",
"swagger": true,
"deprecated": false,
"operationId": "find pet by id",
"params": {
"id": "abcde"
}
}
},
{
"path": "/pets",
"method": "GET",
"query": "GET /pets",
"startts": 1591661374818,
"endts": 1591661374894,
"responsetime": 76,
"node": {
"name": "swagger-stats-fastify",
"version": "0.95.17",
"hostname": "sv5",
"ip": "192.168.1.71"
},
"http": {
"request": {
"url": "/pets",
"headers": {
"x-sws-res": "{\"code\":\"200\",\"message\":\"OK\",\"delay\":76,\"payloadsize\":5}",
"host": "localhost:3040",
"connection": "close"
},
"clength": 0,
"route_path": "/pet*",
"query": {}
},
"response": {
"code": 200,
"class": "success",
"phrase": "OK",
"headers": {},
"clength": 5
}
},
"ip": "127.0.0.1",
"real_ip": "127.0.0.1",
"port": 3040,
"@timestamp": "2020-06-09T00:09:34.818Z",
"api": {
"path": "/pets",
"query": "GET /pets",
"swagger": true,
"deprecated": false,
"operationId": "findPets",
"params": {}
}
},
{
"path": "/pets/abcde",
"method": "GET",
"query": "GET /pets/abcde",
"startts": 1591661374337,
"endts": 1591661374343,
"responsetime": 6,
"node": {
"name": "swagger-stats-fastify",
"version": "0.95.17",
"hostname": "sv5",
"ip": "192.168.1.71"
},
"http": {
"request": {
"url": "/pets/abcde",
"headers": {
"x-sws-res": "{\"code\":\"200\",\"message\":\"OK\",\"delay\":5,\"payloadsize\":66}",
"host": "localhost:3040",
"connection": "close"
},
"clength": 0,
"route_path": "/pet*",
"query": {}
},
"response": {
"code": 200,
"class": "success",
"phrase": "OK",
"headers": {},
"clength": 66
}
},
"ip": "127.0.0.1",
"real_ip": "127.0.0.1",
"port": 3040,
"@timestamp": "2020-06-09T00:09:34.337Z",
"api": {
"path": "/pets/{id}",
"query": "GET /pets/{id}",
"swagger": true,
"deprecated": false,
"operationId": "find pet by id",
"params": {
"id": "abcde"
}
}
},
{
"path": "/pets/abcde",
"method": "DELETE",
"query": "DELETE /pets/abcde",
"startts": 1591661374337,
"endts": 1591661374432,
"responsetime": 95,
"node": {
"name": "swagger-stats-fastify",
"version": "0.95.17",
"hostname": "sv5",
"ip": "192.168.1.71"
},
"http": {
"request": {
"url": "/pets/abcde",
"headers": {
"x-sws-res": "{\"code\":\"200\",\"message\":\"OK\",\"delay\":95,\"payloadsize\":154}",
"host": "localhost:3040",
"connection": "close"
},
"clength": 0,
"route_path": "/pet*",
"query": {}
},
"response": {
"code": 200,
"class": "success",
"phrase": "OK",
"headers": {},
"clength": 154
}
},
"ip": "127.0.0.1",
"real_ip": "127.0.0.1",
"port": 3040,
"@timestamp": "2020-06-09T00:09:34.337Z",
"api": {
"path": "/pets/{id}",
"query": "DELETE /pets/{id}",
"swagger": true,
"deprecated": false,
"operationId": "deletePet",
"params": {
"id": "abcde"
}
}
},
{
"path": "/pets",
"method": "POST",
"query": "POST /pets",
"startts": 1591661374336,
"endts": 1591661374434,
"responsetime": 98,
"node": {
"name": "swagger-stats-fastify",
"version": "0.95.17",
"hostname": "sv5",
"ip": "192.168.1.71"
},
"http": {
"request": {
"url": "/pets",
"headers": {
"x-sws-res": "{\"code\":\"200\",\"message\":\"OK\",\"delay\":97,\"payloadsize\":54}",
"content-type": "application/json",
"content-length": "24",
"host": "localhost:3040",
"connection": "close"
},
"clength": 24,
"route_path": "/pet*",
"query": {}
},
"response": {
"code": 200,
"class": "success",
"phrase": "OK",
"headers": {},
"clength": 54
}
},
"ip": "127.0.0.1",
"real_ip": "127.0.0.1",
"port": 3040,
"@timestamp": "2020-06-09T00:09:34.336Z",
"api": {
"path": "/pets",
"query": "POST /pets",
"swagger": true,
"deprecated": false,
"operationId": "addPet"
}
},
{
"path": "/pets/abcde",
"method": "DELETE",
"query": "DELETE /pets/abcde",
"startts": 1591661373862,
"endts": 1591661373892,
"responsetime": 30,
"node": {
"name": "swagger-stats-fastify",
"version": "0.95.17",
"hostname": "sv5",
"ip": "192.168.1.71"
},
"http": {
"request": {
"url": "/pets/abcde",
"headers": {
"x-sws-res": "{\"code\":\"200\",\"message\":\"OK\",\"delay\":30,\"payloadsize\":175}",
"host": "localhost:3040",
"connection": "close"
},
"clength": 0,
"route_path": "/pet*",
"query": {}
},
"response": {
"code": 200,
"class": "success",
"phrase": "OK",
"headers": {},
"clength": 175
}
},
"ip": "127.0.0.1",
"real_ip": "127.0.0.1",
"port": 3040,
"@timestamp": "2020-06-09T00:09:33.862Z",
"api": {
"path": "/pets/{id}",
"query": "DELETE /pets/{id}",
"swagger": true,
"deprecated": false,
"operationId": "deletePet",
"params": {
"id": "abcde"
}
}
},
{
"path": "/pets",
"method": "POST",
"query": "POST /pets",
"startts": 1591661373861,
"endts": 1591661373905,
"responsetime": 44,
"node": {
"name": "swagger-stats-fastify",
"version": "0.95.17",
"hostname": "sv5",
"ip": "192.168.1.71"
},
"http": {
"request": {
"url": "/pets",
"headers": {
"x-sws-res": "{\"code\":404,\"message\":\"Not Found\",\"delay\":43,\"payloadsize\":40}",
"content-type": "application/json",
"content-length": "93",
"host": "localhost:3040",
"connection": "close"
},
"clength": 93,
"route_path": "/pet*",
"query": {}
},
"response": {
"code": 404,
"class": "client_error",
"phrase": "Not Found",
"headers": {},
"clength": 40
}
},
"ip": "127.0.0.1",
"real_ip": "127.0.0.1",
"port": 3040,
"@timestamp": "2020-06-09T00:09:33.861Z",
"api": {
"path": "/pets",
"query": "POST /pets",
"swagger": true,
"deprecated": false,
"operationId": "addPet"
}
},
{
"path": "/pets",
"method": "GET",
"query": "GET /pets",
"startts": 1591661373860,
"endts": 1591661373898,
"responsetime": 38,
"node": {
"name": "swagger-stats-fastify",
"version": "0.95.17",
"hostname": "sv5",
"ip": "192.168.1.71"
},
"http": {
"request": {
"url": "/pets",
"headers": {
"x-sws-res": "{\"code\":\"200\",\"message\":\"OK\",\"delay\":36,\"payloadsize\":161}",
"host": "localhost:3040",
"connection": "close"
},
"clength": 0,
"route_path": "/pet*",
"query": {}
},
"response": {
"code": 200,
"class": "success",
"phrase": "OK",
"headers": {},
"clength": 161
}
},
"ip": "127.0.0.1",
"real_ip": "127.0.0.1",
"port": 3040,
"@timestamp": "2020-06-09T00:09:33.860Z",
"api": {
"path": "/pets",
"query": "GET /pets",
"swagger": true,
"deprecated": false,
"operationId": "findPets",
"params": {}
}
},
{
"path": "/pets/abcde",
"method": "DELETE",
"query": "DELETE /pets/abcde",
"startts": 1591661373713,
"endts": 1591661373723,
"responsetime": 10,
"node": {
"name": "swagger-stats-fastify",
"version": "0.95.17",
"hostname": "sv5",
"ip": "192.168.1.71"
},
"http": {
"request": {
"url": "/pets/abcde",
"headers": {
"x-sws-res": "{\"code\":404,\"message\":\"Not Found\",\"delay\":9,\"payloadsize\":107}",
"host": "localhost:3040",
"connection": "close"
},
"clength": 0,
"route_path": "/pet*",
"query": {}
},
"response": {
"code": 404,
"class": "client_error",
"phrase": "Not Found",
"headers": {},
"clength": 107
}
},
"ip": "127.0.0.1",
"real_ip": "127.0.0.1",
"port": 3040,
"@timestamp": "2020-06-09T00:09:33.713Z",
"api": {
"path": "/pets/{id}",
"query": "DELETE /pets/{id}",
"swagger": true,
"deprecated": false,
"operationId": "deletePet",
"params": {
"id": "abcde"
}
}
},
{
"path": "/pets",
"method": "POST",
"query": "POST /pets",
"startts": 1591661373712,
"endts": 1591661373718,
"responsetime": 6,
"node": {
"name": "swagger-stats-fastify",
"version": "0.95.17",
"hostname": "sv5",
"ip": "192.168.1.71"
},
"http": {
"request": {
"url": "/pets",
"headers": {
"x-sws-res": "{\"code\":\"200\",\"message\":\"OK\",\"delay\":4,\"payloadsize\":104}",
"content-type": "application/json",
"content-length": "87",
"host": "localhost:3040",
"connection": "close"
},
"clength": 87,
"route_path": "/pet*",
"query": {}
},
"response": {
"code": 200,
"class": "success",
"phrase": "OK",
"headers": {},
"clength": 104
}
},
"ip": "127.0.0.1",
"real_ip": "127.0.0.1",
"port": 3040,
"@timestamp": "2020-06-09T00:09:33.712Z",
"api": {
"path": "/pets",
"query": "POST /pets",
"swagger": true,
"deprecated": false,
"operationId": "addPet"
}
},
{
"path": "/pets",
"method": "GET",
"query": "GET /pets",
"startts": 1591661373712,
"endts": 1591661373722,
"responsetime": 10,
"node": {
"name": "swagger-stats-fastify",
"version": "0.95.17",
"hostname": "sv5",
"ip": "192.168.1.71"
},
"http": {
"request": {
"url": "/pets",
"headers": {
"x-sws-res": "{\"code\":\"200\",\"message\":\"OK\",\"delay\":9,\"payloadsize\":120}",
"host": "localhost:3040",
"connection": "close"
},
"clength": 0,
"route_path": "/pet*",
"query": {}
},
"response": {
"code": 200,
"class": "success",
"phrase": "OK",
"headers": {},
"clength": 120
}
},
"ip": "127.0.0.1",
"real_ip": "127.0.0.1",
"port": 3040,
"@timestamp": "2020-06-09T00:09:33.712Z",
"api": {
"path": "/pets",
"query": "GET /pets",
"swagger": true,
"deprecated": false,
"operationId": "findPets",
"params": {}
}
},
{
"path": "/pets/abcde",
"method": "DELETE",
"query": "DELETE /pets/abcde",
"startts": 1591661373264,
"endts": 1591661373268,
"responsetime": 4,
"node": {
"name": "swagger-stats-fastify",
"version": "0.95.17",
"hostname": "sv5",
"ip": "192.168.1.71"
},
"http": {
"request": {
"url": "/pets/abcde",
"headers": {
"x-sws-res": "{\"code\":\"200\",\"message\":\"OK\",\"delay\":3,\"payloadsize\":137}",
"host": "localhost:3040",
"connection": "close"
},
"clength": 0,
"route_path": "/pet*",
"query": {}
},
"response": {
"code": 200,
"class": "success",
"phrase": "OK",
"headers": {},
"clength": 137
}
},
"ip": "127.0.0.1",
"real_ip": "127.0.0.1",
"port": 3040,
"@timestamp": "2020-06-09T00:09:33.264Z",
"api": {
"path": "/pets/{id}",
"query": "DELETE /pets/{id}",
"swagger": true,
"deprecated": false,
"operationId": "deletePet",
"params": {
"id": "abcde"
}
}
},
{
"path": "/pets",
"method": "GET",
"query": "GET /pets",
"startts": 1591661373263,
"endts": 1591661373264,
"responsetime": 1,
"node": {
"name": "swagger-stats-fastify",
"version": "0.95.17",
"hostname": "sv5",
"ip": "192.168.1.71"
},
"http": {
"request": {
"url": "/pets",
"headers": {
"x-sws-res": "{\"code\":500,\"message\":\"Internal Server Error\",\"delay\":1,\"payloadsize\":56}",
"host": "localhost:3040",
"connection": "close"
},
"clength": 0,
"route_path": "/pet*",
"query": {}
},
"response": {
"code": 500,
"class": "server_error",
"phrase": "Internal Server Error",
"headers": {},
"clength": 56
}
},
"ip": "127.0.0.1",
"real_ip": "127.0.0.1",
"port": 3040,
"@timestamp": "2020-06-09T00:09:33.263Z",
"api": {
"path": "/pets",
"query": "GET /pets",
"swagger": true,
"deprecated": false,
"operationId": "findPets",
"params": {}
}
},
{
"path": "/pets",
"method": "POST",
"query": "POST /pets",
"startts": 1591661373263,
"endts": 1591661373328,
"responsetime": 65,
"node": {
"name": "swagger-stats-fastify",
"version": "0.95.17",
"hostname": "sv5",
"ip": "192.168.1.71"
},
"http": {
"request": {
"url": "/pets",
"headers": {
"x-sws-res": "{\"code\":\"200\",\"message\":\"OK\",\"delay\":63,\"payloadsize\":173}",
"content-type": "application/json",
"content-length": "206",
"host": "localhost:3040",
"connection": "close"
},
"clength": 206,
"route_path": "/pet*",
"query": {}
},
"response": {
"code": 200,
"class": "success",
"phrase": "OK",
"headers": {},
"clength": 173
}
},
"ip": "127.0.0.1",
"real_ip": "127.0.0.1",
"port": 3040,
"@timestamp": "2020-06-09T00:09:33.263Z",
"api": {
"path": "/pets",
"query": "POST /pets",
"swagger": true,
"deprecated": false,
"operationId": "addPet"
}
},
{
"path": "/pets/abcde",
"method": "GET",
"query": "GET /pets/abcde",
"startts": 1591661372772,
"endts": 1591661372847,
"responsetime": 75,
"node": {
"name": "swagger-stats-fastify",
"version": "0.95.17",
"hostname": "sv5",
"ip": "192.168.1.71"
},
"http": {
"request": {
"url": "/pets/abcde",
"headers": {
"x-sws-res": "{\"code\":501,\"message\":\"Not Implemented\",\"delay\":75,\"payloadsize\":79}",
"host": "localhost:3040",
"connection": "close"
},
"clength": 0,
"route_path": "/pet*",
"query": {}
},
"response": {
"code": 501,
"class": "server_error",
"phrase": "Not Implemented",
"headers": {},
"clength": 79
}
},
"ip": "127.0.0.1",
"real_ip": "127.0.0.1",
"port": 3040,
"@timestamp": "2020-06-09T00:09:32.772Z",
"api": {
"path": "/pets/{id}",
"query": "GET /pets/{id}",
"swagger": true,
"deprecated": false,
"operationId": "find pet by id",
"params": {
"id": "abcde"
}
}
},
{
"path": "/pets",
"method": "POST",
"query": "POST /pets",
"startts": 1591661372771,
"endts": 1591661372817,
"responsetime": 46,
"node": {
"name": "swagger-stats-fastify",
"version": "0.95.17",
"hostname": "sv5",
"ip": "192.168.1.71"
},
"http": {
"request": {
"url": "/pets",
"headers": {
"x-sws-res": "{\"code\":\"200\",\"message\":\"OK\",\"delay\":45,\"payloadsize\":176}",
"content-type": "application/json",
"content-length": "138",
"host": "localhost:3040",
"connection": "close"
},
"clength": 138,
"route_path": "/pet*",
"query": {}
},
"response": {
"code": 200,
"class": "success",
"phrase": "OK",
"headers": {},
"clength": 176
}
},
"ip": "127.0.0.1",
"real_ip": "127.0.0.1",
"port": 3040,
"@timestamp": "2020-06-09T00:09:32.771Z",
"api": {
"path": "/pets",
"query": "POST /pets",
"swagger": true,
"deprecated": false,
"operationId": "addPet"
}
},
{
"path": "/pets",
"method": "GET",
"query": "GET /pets",
"startts": 1591661372771,
"endts": 1591661372832,
"responsetime": 61,
"node": {
"name": "swagger-stats-fastify",
"version": "0.95.17",
"hostname": "sv5",
"ip": "192.168.1.71"
},
"http": {
"request": {
"url": "/pets",
"headers": {
"x-sws-res": "{\"code\":\"200\",\"message\":\"OK\",\"delay\":61,\"payloadsize\":141}",
"host": "localhost:3040",
"connection": "close"
},
"clength": 0,
"route_path": "/pet*",
"query": {}
},
"response": {
"code": 200,
"class": "success",
"phrase": "OK",
"headers": {},
"clength": 141
}
},
"ip": "127.0.0.1",
"real_ip": "127.0.0.1",
"port": 3040,
"@timestamp": "2020-06-09T00:09:32.771Z",
"api": {
"path": "/pets",
"query": "GET /pets",
"swagger": true,
"deprecated": false,
"operationId": "findPets",
"params": {}
}
},
{
"path": "/pets/abcde",
"method": "DELETE",
"query": "DELETE /pets/abcde",
"startts": 1591661372177,
"endts": 1591661372240,
"responsetime": 63,
"node": {
"name": "swagger-stats-fastify",
"version": "0.95.17",
"hostname": "sv5",
"ip": "192.168.1.71"
},
"http": {
"request": {
"url": "/pets/abcde",
"headers": {
"x-sws-res": "{\"code\":\"200\",\"message\":\"OK\",\"delay\":62,\"payloadsize\":81}",
"host": "localhost:3040",
"connection": "close"
},
"clength": 0,
"route_path": "/pet*",
"query": {}
},
"response": {
"code": 200,
"class": "success",
"phrase": "OK",
"headers": {},
"clength": 81
}
},
"ip": "127.0.0.1",
"real_ip": "127.0.0.1",
"port": 3040,
"@timestamp": "2020-06-09T00:09:32.177Z",
"api": {
"path": "/pets/{id}",
"query": "DELETE /pets/{id}",
"swagger": true,
"deprecated": false,
"operationId": "deletePet",
"params": {
"id": "abcde"
}
}
},
{
"path": "/pets/abcde",
"method": "GET",
"query": "GET /pets/abcde",
"startts": 1591661372176,
"endts": 1591661372251,
"responsetime": 75,
"node": {
"name": "swagger-stats-fastify",
"version": "0.95.17",
"hostname": "sv5",
"ip": "192.168.1.71"
},
"http": {
"request": {
"url": "/pets/abcde",
"headers": {
"x-sws-res": "{\"code\":\"200\",\"message\":\"OK\",\"delay\":73,\"payloadsize\":30}",
"host": "localhost:3040",
"connection": "close"
},
"clength": 0,
"route_path": "/pet*",
"query": {}
},
"response": {
"code": 200,
"class": "success",
"phrase": "OK",
"headers": {},
"clength": 30
}
},
"ip": "127.0.0.1",
"real_ip": "127.0.0.1",
"port": 3040,
"@timestamp": "2020-06-09T00:09:32.176Z",
"api": {
"path": "/pets/{id}",
"query": "GET /pets/{id}",
"swagger": true,
"deprecated": false,
"operationId": "find pet by id",
"params": {
"id": "abcde"
}
}
},
{
"path": "/pets/abcde",
"method": "DELETE",
"query": "DELETE /pets/abcde",
"startts": 1591661371771,
"endts": 1591661371773,
"responsetime": 2,
"node": {
"name": "swagger-stats-fastify",
"version": "0.95.17",
"hostname": "sv5",
"ip": "192.168.1.71"
},
"http": {
"request": {
"url": "/pets/abcde",
"headers": {
"x-sws-res": "{\"code\":\"200\",\"message\":\"OK\",\"delay\":2,\"payloadsize\":113}",
"host": "localhost:3040",
"connection": "close"
},
"clength": 0,
"route_path": "/pet*",
"query": {}
},
"response": {
"code": 200,
"class": "success",
"phrase": "OK",
"headers": {},
"clength": 113
}
},
"ip": "127.0.0.1",
"real_ip": "127.0.0.1",
"port": 3040,
"@timestamp": "2020-06-09T00:09:31.771Z",
"api": {
"path": "/pets/{id}",
"query": "DELETE /pets/{id}",
"swagger": true,
"deprecated": false,
"operationId": "deletePet",
"params": {
"id": "abcde"
}
}
},
{
"path": "/pets/abcde",
"method": "GET",
"query": "GET /pets/abcde",
"startts": 1591661371771,
"endts": 1591661371809,
"responsetime": 38,
"node": {
"name": "swagger-stats-fastify",
"version": "0.95.17",
"hostname": "sv5",
"ip": "192.168.1.71"
},
"http": {
"request": {
"url": "/pets/abcde",
"headers": {
"x-sws-res": "{\"code\":404,\"message\":\"Not Found\",\"delay\":38,\"payloadsize\":66}",
"host": "localhost:3040",
"connection": "close"
},
"clength": 0,
"route_path": "/pet*",
"query": {}
},
"response": {
"code": 404,
"class": "client_error",
"phrase": "Not Found",
"headers": {},
"clength": 66
}
},
"ip": "127.0.0.1",
"real_ip": "127.0.0.1",
"port": 3040,
"@timestamp": "2020-06-09T00:09:31.771Z",
"api": {
"path": "/pets/{id}",
"query": "GET /pets/{id}",
"swagger": true,
"deprecated": false,
"operationId": "find pet by id",
"params": {
"id": "abcde"
}
}
},
{
"path": "/pets",
"method": "POST",
"query": "POST /pets",
"startts": 1591661371770,
"endts": 1591661371816,
"responsetime": 46,
"node": {
"name": "swagger-stats-fastify",
"version": "0.95.17",
"hostname": "sv5",
"ip": "192.168.1.71"
},
"http": {
"request": {
"url": "/pets",
"headers": {
"x-sws-res": "{\"code\":501,\"message\":\"Not Implemented\",\"delay\":46,\"payloadsize\":162}",
"content-type": "application/json",
"content-length": "41",
"host": "localhost:3040",
"connection": "close"
},
"clength": 41,
"route_path": "/pet*",
"query": {}
},
"response": {
"code": 501,
"class": "server_error",
"phrase": "Not Implemented",
"headers": {},
"clength": 162
}
},
"ip": "127.0.0.1",
"real_ip": "127.0.0.1",
"port": 3040,
"@timestamp": "2020-06-09T00:09:31.770Z",
"api": {
"path": "/pets",
"query": "POST /pets",
"swagger": true,
"deprecated": false,
"operationId": "addPet"
}
},
{
"path": "/pets/abcde",
"method": "GET",
"query": "GET /pets/abcde",
"startts": 1591661371312,
"endts": 1591661371337,
"responsetime": 25,
"node": {
"name": "swagger-stats-fastify",
"version": "0.95.17",
"hostname": "sv5",
"ip": "192.168.1.71"
},
"http": {
"request": {
"url": "/pets/abcde",
"headers": {
"x-sws-res": "{\"code\":401,\"message\":\"Unauthorized\",\"delay\":24,\"payloadsize\":67}",
"host": "localhost:3040",
"connection": "close"
},
"clength": 0,
"route_path": "/pet*",
"query": {}
},
"response": {
"code": 401,
"class": "client_error",
"phrase": "Unauthorized",
"headers": {},
"clength": 67
}
},
"ip": "127.0.0.1",
"real_ip": "127.0.0.1",
"port": 3040,
"@timestamp": "2020-06-09T00:09:31.312Z",
"api": {
"path": "/pets/{id}",
"query": "GET /pets/{id}",
"swagger": true,
"deprecated": false,
"operationId": "find pet by id",
"params": {
"id": "abcde"
}
}
},
{
"path": "/pets/abcde",
"method": "DELETE",
"query": "DELETE /pets/abcde",
"startts": 1591661370927,
"endts": 1591661370952,
"responsetime": 25,
"node": {
"name": "swagger-stats-fastify",
"version": "0.95.17",
"hostname": "sv5",
"ip": "192.168.1.71"
},
"http": {
"request": {
"url": "/pets/abcde",
gitextract_2_g3etwt/ ├── .editorconfig ├── .eslintignore ├── .github/ │ ├── FUNDING.yml │ └── workflows/ │ └── main.yml ├── .gitignore ├── .prettierrc ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── babel.config.js ├── cypress.json ├── package.json ├── public/ │ ├── googleee01dc033d7bbca2.html │ └── index.html ├── scripts/ │ └── demodeploy.sh ├── src/ │ ├── App.vue │ ├── components/ │ │ ├── menu/ │ │ │ ├── menudrawer.vue │ │ │ ├── menulist.vue │ │ │ ├── menulistitem.vue │ │ │ └── menulistitemex.vue │ │ ├── settings/ │ │ │ ├── colorschemeselector.vue │ │ │ └── settings.vue │ │ ├── tables/ │ │ │ ├── htable.vue │ │ │ ├── itable.vue │ │ │ └── ptable.vue │ │ └── user/ │ │ ├── message.vue │ │ ├── messages.vue │ │ └── userinfo.vue │ ├── dashboards/ │ │ ├── ChartJsShowcase.json │ │ ├── dashfive.json │ │ ├── dashfour.json │ │ ├── dashsix.json │ │ └── dashthree.json │ ├── data/ │ │ ├── ChartJsShowcase.json │ │ ├── api.json │ │ ├── apioperation.json │ │ ├── errors.json │ │ ├── hitsdata.json │ │ ├── iconsmdiv5.json │ │ ├── itemstabledata.json │ │ ├── ptabledata.json │ │ ├── requests.json │ │ └── summary.json │ ├── layouts/ │ │ └── mainlayout.vue │ ├── main.js │ ├── mixins/ │ │ ├── demodashboard.js │ │ └── vgtmethods.js │ ├── pages/ │ │ └── login.vue │ ├── quasar.js │ ├── router.js │ ├── store/ │ │ ├── modules/ │ │ │ └── layout.js │ │ └── store.js │ ├── styles/ │ │ ├── quasar.scss │ │ ├── quasar.variables.scss │ │ ├── textbgcolors.scss │ │ ├── ubbox.scss │ │ ├── ubcode.scss │ │ └── vgt.scss │ ├── utils.js │ └── views/ │ ├── About.vue │ ├── ChartJsShowcase.vue │ ├── DashblocksShowcase.vue │ ├── Dygraphs.vue │ ├── Home.vue │ ├── SampleDashboard.vue │ ├── apiop.vue │ ├── errors.vue │ ├── forms.vue │ ├── materialicons.vue │ ├── mdi.vue │ ├── observability.vue │ ├── quasartable.vue │ ├── requests.vue │ ├── summary.vue │ ├── tables.vue │ ├── timeline.vue │ ├── typography.vue │ └── vuegoodtable.vue ├── tests/ │ ├── e2e/ │ │ ├── .eslintrc.js │ │ ├── plugins/ │ │ │ └── index.js │ │ ├── specs/ │ │ │ └── test.js │ │ └── support/ │ │ ├── commands.js │ │ └── index.js │ └── unit/ │ └── .eslintrc.js └── vue.config.js
SYMBOL INDEX (23 symbols across 4 files)
FILE: src/mixins/demodashboard.js
method dashboardColorScheme (line 11) | dashboardColorScheme(val) {
FILE: src/mixins/vgtmethods.js
method tdClassErrors (line 10) | tdClassErrors(row) {
method tdClassErrRate (line 13) | tdClassErrRate(row) {
method tdClassCErr (line 16) | tdClassCErr(row) {
method tdClassSErr (line 19) | tdClassSErr(row) {
method tdClassApdex (line 22) | tdClassApdex(row) {
FILE: src/store/modules/layout.js
method SET_DARK (line 17) | SET_DARK(state, { dark }) {
method SET_MENU_AUTO_EXPAND (line 21) | SET_MENU_AUTO_EXPAND(state, { menuAutoExpand }) {
method SET_MENU_MINI (line 25) | SET_MENU_MINI(state, { menuMini }) {
method SET_DASHBOARD_COLOR_SCHEME (line 29) | SET_DASHBOARD_COLOR_SCHEME(state, { dashboardColorScheme }) {
method setDark (line 36) | setDark({ commit }, { dark }) {
method setMenuAutoExpand (line 39) | setMenuAutoExpand({ commit }, { menuAutoExpand }) {
method setMenuMini (line 42) | setMenuMini({ commit }, { menuMini }) {
method setDashboardColorScheme (line 45) | setDashboardColorScheme({ commit }, { dashboardColorScheme }) {
FILE: src/utils.js
class Utils (line 4) | class Utils {
method constructor (line 5) | constructor() {}
method formatBytes (line 7) | formatBytes(a, b) {
method bucketsToLabels (line 16) | bucketsToLabels(buckets) {
method getKVObjSortedArray (line 29) | getKVObjSortedArray(obj, asc) {
method getApiStatsArray (line 40) | getApiStatsArray(statsData) {
method getMethodStatsArray (line 67) | getMethodStatsArray(statsData) {
method getCurrentTimelineBucket (line 86) | getCurrentTimelineBucket(statsData) {
method getSortedTimeline (line 97) | getSortedTimeline(statsData) {
Condensed preview — 85 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (632K chars).
[
{
"path": ".editorconfig",
"chars": 415,
"preview": "# EditorConfig helps developers define and maintain consistent\n# coding styles between different editors and IDEs\n# edit"
},
{
"path": ".eslintignore",
"chars": 31,
"preview": "dist\nnode_modules\npublic\ntests\n"
},
{
"path": ".github/FUNDING.yml",
"chars": 12,
"preview": "github: sv2\n"
},
{
"path": ".github/workflows/main.yml",
"chars": 1384,
"preview": "name: CI\n\n# Controls when the action will run. Triggers the workflow on push or pull request\n# events but only for the m"
},
{
"path": ".gitignore",
"chars": 264,
"preview": ".DS_Store\nnode_modules\n/dist\n/demo\n\n/tests/e2e/videos/\n/tests/e2e/screenshots/\n\n# local env files\n.env.local\n.env.*.loca"
},
{
"path": ".prettierrc",
"chars": 47,
"preview": "{\n \"singleQuote\": true,\n \"printWidth\": 160\n}\n"
},
{
"path": "CONTRIBUTING.md",
"chars": 630,
"preview": "# Contributing \n\nWant to contribute to **dashblocks-template**? Awesome!\n\n\nThere are many ways you can contribute:\n\n* by"
},
{
"path": "LICENSE",
"chars": 1085,
"preview": "The MIT License (MIT)\n\nCopyright (c) 2019-present slana.tech\n\nPermission is hereby granted, free of charge, to any perso"
},
{
"path": "README.md",
"chars": 2497,
"preview": "<p align=\"center\">\n<img src=\"https://github.com/slanatech/dashblocks-template/blob/master/screenshots/dblogo.png?raw=tru"
},
{
"path": "babel.config.js",
"chars": 265,
"preview": "module.exports = {\n presets: ['@vue/cli-plugin-babel/preset'],\n plugins: [\n [\n 'transform-imports',\n {\n "
},
{
"path": "cypress.json",
"chars": 50,
"preview": "{\n \"pluginsFile\": \"tests/e2e/plugins/index.js\"\n}\n"
},
{
"path": "package.json",
"chars": 3190,
"preview": "{\n \"name\": \"dashblocks-template\",\n \"version\": \"0.5.4\",\n \"private\": true,\n \"author\": \"https://github.com/sv2\",\n \"scr"
},
{
"path": "public/googleee01dc033d7bbca2.html",
"chars": 53,
"preview": "google-site-verification: googleee01dc033d7bbca2.html"
},
{
"path": "public/index.html",
"chars": 895,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n <head>\n <meta charset=\"utf-8\">\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE="
},
{
"path": "scripts/demodeploy.sh",
"chars": 239,
"preview": "#!/bin/bash\n\n# abort on errors\nset -e\n\n# navigate into the build output directory\ncd demo\n\ngit init\ngit add -A\ngit commi"
},
{
"path": "src/App.vue",
"chars": 69,
"preview": "<template>\n <div id=\"app\">\n <router-view />\n </div>\n</template>\n"
},
{
"path": "src/components/menu/menudrawer.vue",
"chars": 2858,
"preview": "<template>\n <q-drawer\n ref=\"drawer\"\n show-if-above\n :mini=\"miniState\"\n v-model=\"shown\"\n :side=\"side\"\n "
},
{
"path": "src/components/menu/menulist.vue",
"chars": 1699,
"preview": "<template>\n <q-list class=\"db-menu-list\">\n <div v-if=\"mode === 'expand'\">\n <menu-list-item\n v-for=\"item "
},
{
"path": "src/components/menu/menulistitem.vue",
"chars": 2667,
"preview": "<template>\n <q-expansion-item\n v-if=\"item.items\"\n :icon=\"item.icon\"\n :label=\"item.title\"\n :caption=\"item.ca"
},
{
"path": "src/components/menu/menulistitemex.vue",
"chars": 3310,
"preview": "<template>\n <div v-if=\"item.items\">\n <q-item clickable v-ripple exact :class=\"itemClass\" :active-class=\"itemActiveCl"
},
{
"path": "src/components/settings/colorschemeselector.vue",
"chars": 3989,
"preview": "<template>\n <q-card style=\"width: 100%;\">\n <q-card-section>\n <q-input v-model=\"query\" debounce=\"400\" filled den"
},
{
"path": "src/components/settings/settings.vue",
"chars": 7693,
"preview": "<template>\n <div class=\"q-pa-md\" style=\"max-width: 350px\">\n <q-bar class=\"bg-none\">\n Settings\n <q-space />"
},
{
"path": "src/components/tables/htable.vue",
"chars": 6308,
"preview": "<template>\n <q-table\n dense\n flat\n :data=\"hits\"\n :columns=\"columnsList\"\n :pagination.sync=\"pagination\"\n "
},
{
"path": "src/components/tables/itable.vue",
"chars": 6168,
"preview": "<template>\n <q-table\n dense\n flat\n virtual-scroll\n :data=\"items\"\n :columns=\"columns\"\n :pagination.syn"
},
{
"path": "src/components/tables/ptable.vue",
"chars": 4716,
"preview": "<template>\n <q-table dense flat hide-bottom :data=\"items\" :columns=\"columns\" row-key=\"prop\" :pagination.sync=\"paginatio"
},
{
"path": "src/components/user/message.vue",
"chars": 1382,
"preview": "<template>\n <q-item>\n <q-item-section avatar top>\n <q-icon v-if=\"message.icon\" :name=\"message.icon || 'mdi-mess"
},
{
"path": "src/components/user/messages.vue",
"chars": 2000,
"preview": "<template>\n <div class=\"q-pa-md\" style=\"max-width: 700px\">\n <q-bar class=\"bg-none\">\n Notifications\n <q-spa"
},
{
"path": "src/components/user/userinfo.vue",
"chars": 6429,
"preview": "<template>\n <div class=\"q-pa-md\" style=\"max-width: 280px\">\n <q-list style=\"width: 260px\">\n <q-item>\n <q-"
},
{
"path": "src/dashboards/ChartJsShowcase.json",
"chars": 1449,
"preview": "{\n \"layout\": {\n \"type\": \"grid\"\n },\n \"widgets\": [\n {\n \"id\": \"w1\",\n \"type\": \"DbChartjsLine\",\n \"csp"
},
{
"path": "src/dashboards/dashfive.json",
"chars": 3089,
"preview": "{\n \"layout\": {\n \"type\": \"grid\"\n },\n \"widgets\": [\n {\n \"id\": \"wa\",\n \"type\": \"DbDygraphsBar\",\n \"csp"
},
{
"path": "src/dashboards/dashfour.json",
"chars": 930,
"preview": "{\n \"layout\": {\n \"type\": \"grid\"\n },\n \"widgets\": [\n {\n \"id\": \"w0\",\n \"type\": \"DbTrendLine\",\n \"cspan"
},
{
"path": "src/dashboards/dashsix.json",
"chars": 1522,
"preview": "{\n \"layout\": {\n \"type\": \"grid\"\n },\n \"widgets\": [\n {\n \"id\": \"w1\",\n \"type\": \"DbDygraphsBar\",\n \"csp"
},
{
"path": "src/dashboards/dashthree.json",
"chars": 136,
"preview": "{\n \"layout\": {\n \"type\": \"grid\"\n },\n \"widgets\": [\n {\n \"id\": \"w1\",\n \"type\": \"DbHorizon\",\n \"cspan\":"
},
{
"path": "src/data/ChartJsShowcase.json",
"chars": 1449,
"preview": "{\n \"layout\": {\n \"type\": \"grid\"\n },\n \"widgets\": [\n {\n \"id\": \"w1\",\n \"type\": \"DbChartjsLine\",\n \"csp"
},
{
"path": "src/data/api.json",
"chars": 25061,
"preview": "{\n \"startts\": 1588045302159,\n \"all\": {\n \"requests\": 2465,\n \"responses\": 2465,\n \"errors\": 286,\n \"info\": 0,\n"
},
{
"path": "src/data/apioperation.json",
"chars": 4971,
"preview": "{\n \"startts\": 1588045302159,\n \"all\": {\n \"requests\": 55827,\n \"responses\": 55827,\n \"errors\": 5998,\n \"info\": "
},
{
"path": "src/data/errors.json",
"chars": 60742,
"preview": "{\n \"startts\": 1588092850475,\n \"all\": {\n \"requests\": 13204,\n \"responses\": 13204,\n \"errors\": 1402,\n \"info\": "
},
{
"path": "src/data/hitsdata.json",
"chars": 112727,
"preview": "[\n {\n \"path\": \"/pets\",\n \"method\": \"GET\",\n \"query\": \"GET /pets\",\n \"startts\": 1591661376075,\n \"endts\": 159"
},
{
"path": "src/data/iconsmdiv5.json",
"chars": 102207,
"preview": "[\n \"ab-testing\",\n \"abjad-arabic\",\n \"abjad-hebrew\",\n \"abugida-devanagari\",\n \"abugida-thai\",\n \"access-point\",\n \"acc"
},
{
"path": "src/data/itemstabledata.json",
"chars": 640,
"preview": "[\n {\n \"name\": \"api_all_client_error_total\",\n \"color\": \"#4e79a7\",\n \"data\": 10\n },\n {\n \"name\": \"api_all_err"
},
{
"path": "src/data/ptabledata.json",
"chars": 402,
"preview": "{\n \"layout\": {\n \"type\": \"grid\"\n },\n \"widgets\": [\n {\n \"id\": \"w1\",\n \"type\": \"DbChartjsLine\",\n \"csp"
},
{
"path": "src/data/requests.json",
"chars": 4119,
"preview": "{\n \"startts\": 1588042628346,\n \"all\": {\n \"requests\": 2070,\n \"responses\": 2070,\n \"errors\": 257,\n \"info\": 0,\n"
},
{
"path": "src/data/summary.json",
"chars": 61723,
"preview": "{\n \"startts\": 1588035881728,\n \"all\": {\n \"requests\": 585,\n \"responses\": 583,\n \"errors\": 64,\n \"info\": 0,\n "
},
{
"path": "src/layouts/mainlayout.vue",
"chars": 10239,
"preview": "<template>\n <q-layout view=\"hHh LpR fFf\">\n <q-header class=\"text-grey-4 db-toolbar\" height-hint=\"98\">\n <q-toolb"
},
{
"path": "src/main.js",
"chars": 1597,
"preview": "import Vue from 'vue';\nimport App from './App.vue';\nimport router from './router';\nimport store from './store/store';\nim"
},
{
"path": "src/mixins/demodashboard.js",
"chars": 387,
"preview": "import { mapState } from 'vuex';\n\nexport const demodashboard = {\n computed: {\n ...mapState({\n dark: state => st"
},
{
"path": "src/mixins/vgtmethods.js",
"chars": 795,
"preview": "// Standard methods for views that use vue-good-table\nexport const vgtMethods = {\n methods: {\n formatToFixed2: funct"
},
{
"path": "src/pages/login.vue",
"chars": 2630,
"preview": "<template>\n <q-layout>\n <q-page-container>\n <q-page class=\"flex flex-center\">\n <q-card class=\"ub-login-c"
},
{
"path": "src/quasar.js",
"chars": 2295,
"preview": "import Vue from 'vue';\n\nimport './styles/quasar.scss';\nimport '@quasar/extras/roboto-font/roboto-font.css';\nimport '@qua"
},
{
"path": "src/router.js",
"chars": 2882,
"preview": "import Vue from 'vue';\nimport Router from 'vue-router';\nimport MainLayout from './layouts/mainlayout.vue';\nimport Home f"
},
{
"path": "src/store/modules/layout.js",
"chars": 1575,
"preview": "/*\n * Layout state Vuex Module\n */\n\n//import { dbColors } from 'dashblocks';\n\nconst state = {\n dark: (localStorage['ub-"
},
{
"path": "src/store/store.js",
"chars": 212,
"preview": "import Vue from 'vue';\nimport Vuex from 'vuex';\nimport layout from './modules/layout';\nVue.use(Vuex);\n\nexport default ne"
},
{
"path": "src/styles/quasar.scss",
"chars": 1656,
"preview": "@import './quasar.variables.scss';\n@import '~quasar-styl';\n// @import '~quasar-addon-styl'\n\n// ???\n//@import 'dashblocks"
},
{
"path": "src/styles/quasar.variables.scss",
"chars": 303,
"preview": "// It's highly recommended to change the default colors\n// to match your app's branding.\n\n$primary : #027BE3;\n$seconda"
},
{
"path": "src/styles/textbgcolors.scss",
"chars": 83,
"preview": "/* Various text and bg colors */\n\n.text-down1 {\n color: rgba(128,128,128,0.7);\n}\n\n"
},
{
"path": "src/styles/ubbox.scss",
"chars": 320,
"preview": "/** UB Flex Box */\n.ub-box {\n display: flex;\n flex-flow: column;\n flex-shrink: 0;\n\n .ub-row {\n border: 0px;\n }\n\n"
},
{
"path": "src/styles/ubcode.scss",
"chars": 597,
"preview": "/* UBook - code highlighting styles */\n\n.ub-code {\n font: 14px/normal 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'so"
},
{
"path": "src/styles/vgt.scss",
"chars": 520,
"preview": "/* vue-good-table styles */\n\ntable.vgt-table.sws-table {\n font-size: 14px;\n}\n\ntable.vgt-table.sws-table.nocturnal {\n b"
},
{
"path": "src/utils.js",
"chars": 3191,
"preview": "// Utilities\nimport pathOr from 'ramda/src/pathOr';\n\nclass Utils {\n constructor() {}\n\n formatBytes(a, b) {\n if (0 ="
},
{
"path": "src/views/About.vue",
"chars": 147,
"preview": "<template>\n <q-page padding>\n <p>This is an about page</p>\n </q-page>\n</template>\n\n<script>\nexport default {\n name"
},
{
"path": "src/views/ChartJsShowcase.vue",
"chars": 7644,
"preview": "<template>\n <q-page class=\"ub-page\">\n <div class=\"row items-center\">\n <div class=\"col-md-12 q-ma-sm\">\n <"
},
{
"path": "src/views/DashblocksShowcase.vue",
"chars": 7847,
"preview": "<template>\n <q-page class=\"ub-page\">\n <db-dashboard v-if=\"ready\" :dbspec=\"dbspec\" :dbdata=\"dbdata\" :dark=\"dark\"> </d"
},
{
"path": "src/views/Dygraphs.vue",
"chars": 3584,
"preview": "<template>\n <q-page class=\"ub-page\">\n <div class=\"row items-center\">\n <div class=\"col-md-12 q-ma-sm\">\n <"
},
{
"path": "src/views/Home.vue",
"chars": 202,
"preview": "<template>\n <q-page class=\"flex flex-center\">\n <img alt=\"Quasar logo\" src=\"../assets/logo.png\" />\n </q-page>\n</temp"
},
{
"path": "src/views/SampleDashboard.vue",
"chars": 3247,
"preview": "<template>\n <db-dashboard v-if=\"ready\" :dbspec=\"dbspec\" :dbdata=\"dbdata\" :dark=\"isDark\"> </db-dashboard>\n</template>\n\n<"
},
{
"path": "src/views/apiop.vue",
"chars": 13273,
"preview": "<template>\n <q-page class=\"ub-page\">\n <div class=\"row items-center\" style=\"margin-bottom: 10px;\">\n <div class=\""
},
{
"path": "src/views/errors.vue",
"chars": 8193,
"preview": "<template>\n <q-page class=\"ub-page\">\n <div class=\"row items-center\" style=\"margin-bottom: 10px;\">\n <div class=\""
},
{
"path": "src/views/forms.vue",
"chars": 2811,
"preview": "<template>\n <q-page class=\"ub-page\">\n <div class=\"row items-center\">\n <div class=\"col-md-10 offset-md-1 q-ma-lg"
},
{
"path": "src/views/materialicons.vue",
"chars": 764,
"preview": "<template>\n <q-page class=\"ub-page\">\n <div class=\"row items-center\">\n <div class=\"col-md-10 offset-md-1 q-ma-lg"
},
{
"path": "src/views/mdi.vue",
"chars": 2976,
"preview": "<template>\n <q-page class=\"ub-page\">\n <div class=\"row items-center\">\n <div class=\"col-md-10 offset-md-1 q-ma-lg"
},
{
"path": "src/views/observability.vue",
"chars": 697,
"preview": "<template>\n <q-page class=\"ub-page\">\n <div class=\"row items-center\">\n <div class=\"col-md-10 offset-md-1 q-ma-lg"
},
{
"path": "src/views/quasartable.vue",
"chars": 3563,
"preview": "<template>\n <q-page class=\"ub-page\">\n <div class=\"row items-center\">\n <div class=\"col-md-12 q-ma-sm\">\n <"
},
{
"path": "src/views/requests.vue",
"chars": 9453,
"preview": "<template>\n <q-page class=\"ub-page\">\n <div class=\"row items-center\" style=\"margin-bottom: 10px;\">\n <div class=\""
},
{
"path": "src/views/summary.vue",
"chars": 9774,
"preview": "<template>\n <q-page class=\"ub-page\">\n <div class=\"row items-center\" style=\"margin-bottom: 10px;\">\n <div class=\""
},
{
"path": "src/views/tables.vue",
"chars": 672,
"preview": "<template>\n <q-page class=\"ub-page\">\n <div class=\"row items-center\">\n <div class=\"col-md-10 offset-md-1 q-ma-lg"
},
{
"path": "src/views/timeline.vue",
"chars": 5458,
"preview": "<template>\n <q-page class=\"ub-page\">\n <div class=\"row items-center\">\n <div class=\"col-md-12 q-ma-xs\">\n <"
},
{
"path": "src/views/typography.vue",
"chars": 5826,
"preview": "<template>\n <q-page class=\"ub-page\">\n <div class=\"row items-center\">\n <div class=\"col-md-10 offset-md-1 q-ma-lg"
},
{
"path": "src/views/vuegoodtable.vue",
"chars": 6368,
"preview": "<template>\n <q-page class=\"ub-page\">\n <div class=\"row items-center\">\n <div class=\"col-md-12 q-ma-sm\">\n <"
},
{
"path": "tests/e2e/.eslintrc.js",
"chars": 138,
"preview": "module.exports = {\n plugins: [\"cypress\"],\n env: {\n mocha: true,\n \"cypress/globals\": true\n },\n rules: {\n str"
},
{
"path": "tests/e2e/plugins/index.js",
"chars": 885,
"preview": "// https://docs.cypress.io/guides/guides/plugins-guide.html\n\n// if you need a custom webpack configuration you can uncom"
},
{
"path": "tests/e2e/specs/test.js",
"chars": 157,
"preview": "// https://docs.cypress.io/api/introduction/api.html\n\ndescribe('My First Test', () => {\n it('Visits the app root url', "
},
{
"path": "tests/e2e/support/commands.js",
"chars": 841,
"preview": "// ***********************************************\n// This example commands.js shows you how to\n// create various custom"
},
{
"path": "tests/e2e/support/index.js",
"chars": 671,
"preview": "// ***********************************************************\n// This example support/index.js is processed and\n// load"
},
{
"path": "tests/unit/.eslintrc.js",
"chars": 50,
"preview": "module.exports = {\n env: {\n jest: true\n }\n};\n"
},
{
"path": "vue.config.js",
"chars": 576,
"preview": "// vue.config.js\nconst webpack = require('webpack');\nconst BundleAnalyzerPlugin = require('webpack-bundle-analyzer').Bun"
}
]
About this extraction
This page contains the full source code of the slanatech/dashblocks-template GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 85 files (553.3 KB), approximately 171.0k tokens, and a symbol index with 23 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.