fork download
  1. {
  2. "annotations": {
  3. "list": [
  4. {
  5. "builtIn": 1,
  6. "datasource": {
  7. "type": "datasource",
  8. "uid": "grafana"
  9. },
  10. "enable": true,
  11. "hide": true,
  12. "iconColor": "rgba(0, 211, 255, 1)",
  13. "name": "Annotations & Alerts",
  14. "type": "dashboard"
  15. }
  16. ]
  17. },
  18. "description": "OpenVPN Server status using Prometheus and OpenVPN exporter ",
  19. "editable": true,
  20. "fiscalYearStartMonth": 0,
  21. "graphTooltip": 0,
  22. "id": 6,
  23. "links": [
  24. {
  25. "icon": "external link",
  26. "tags": [
  27. "openvpn"
  28. ],
  29. "targetBlank": true,
  30. "type": "dashboards"
  31. }
  32. ],
  33. "panels": [
  34. {
  35. "datasource": {
  36. "type": "prometheus",
  37. "uid": "eemfs9902ud4wc"
  38. },
  39. "fieldConfig": {
  40. "defaults": {
  41. "color": {
  42. "mode": "palette-classic"
  43. },
  44. "custom": {
  45. "axisBorderShow": false,
  46. "axisCenteredZero": false,
  47. "axisColorMode": "text",
  48. "axisLabel": "",
  49. "axisPlacement": "auto",
  50. "fillOpacity": 80,
  51. "gradientMode": "none",
  52. "hideFrom": {
  53. "legend": false,
  54. "tooltip": false,
  55. "viz": false
  56. },
  57. "lineWidth": 1,
  58. "scaleDistribution": {
  59. "type": "linear"
  60. },
  61. "thresholdsStyle": {
  62. "mode": "off"
  63. }
  64. },
  65. "mappings": [],
  66. "thresholds": {
  67. "mode": "absolute",
  68. "steps": [
  69. {
  70. "color": "green"
  71. },
  72. {
  73. "color": "red",
  74. "value": 80
  75. }
  76. ]
  77. }
  78. },
  79. "overrides": [
  80. {
  81. "matcher": {
  82. "id": "byName",
  83. "options": "Field"
  84. },
  85. "properties": [
  86. {
  87. "id": "custom.axisPlacement",
  88. "value": "hidden"
  89. }
  90. ]
  91. }
  92. ]
  93. },
  94. "gridPos": {
  95. "h": 7,
  96. "w": 6,
  97. "x": 0,
  98. "y": 0
  99. },
  100. "id": 21,
  101. "options": {
  102. "barRadius": 0,
  103. "barWidth": 0.97,
  104. "fullHighlight": false,
  105. "groupWidth": 1,
  106. "legend": {
  107. "calcs": [],
  108. "displayMode": "list",
  109. "placement": "bottom",
  110. "showLegend": true
  111. },
  112. "orientation": "auto",
  113. "showValue": "auto",
  114. "stacking": "none",
  115. "tooltip": {
  116. "hideZeros": false,
  117. "mode": "single",
  118. "sort": "none"
  119. },
  120. "xTickLabelRotation": 0,
  121. "xTickLabelSpacing": 0
  122. },
  123. "pluginVersion": "12.0.1",
  124. "targets": [
  125. {
  126. "datasource": {
  127. "type": "prometheus",
  128. "uid": "eemfs9902ud4wc"
  129. },
  130. "editorMode": "code",
  131. "expr": "topk(6, sum(count_values(\"connection_time\", count_over_time(openvpn_client_bytes_received{common_name!=\"UNDEF\"}[1d]))by(common_name))by(common_name)>1)",
  132. "format": "time_series",
  133. "instant": true,
  134. "intervalFactor": 1,
  135. "legendFormat": "{{ common_name }}",
  136. "refId": "A"
  137. }
  138. ],
  139. "timeFrom": "24h",
  140. "title": "Top Logins",
  141. "type": "barchart"
  142. },
  143. {
  144. "datasource": {
  145. "type": "prometheus",
  146. "uid": "eemfs9902ud4wc"
  147. },
  148. "description": "Status",
  149. "fieldConfig": {
  150. "defaults": {
  151. "color": {
  152. "mode": "thresholds"
  153. },
  154. "displayName": "Status:",
  155. "mappings": [
  156. {
  157. "options": {
  158. "0": {
  159. "index": 0,
  160. "text": "DOWN"
  161. },
  162. "1": {
  163. "index": 1,
  164. "text": "UP"
  165. }
  166. },
  167. "type": "value"
  168. },
  169. {
  170. "options": {
  171. "match": "null",
  172. "result": {
  173. "index": 2,
  174. "text": "N/A"
  175. }
  176. },
  177. "type": "special"
  178. }
  179. ],
  180. "thresholds": {
  181. "mode": "absolute",
  182. "steps": [
  183. {
  184. "color": "#d44a3a"
  185. },
  186. {
  187. "color": "dark-red",
  188. "value": 0
  189. },
  190. {
  191. "color": "#299c46",
  192. "value": 1
  193. }
  194. ]
  195. },
  196. "unit": "none"
  197. },
  198. "overrides": []
  199. },
  200. "gridPos": {
  201. "h": 5,
  202. "w": 4,
  203. "x": 6,
  204. "y": 0
  205. },
  206. "id": 12,
  207. "maxDataPoints": 100,
  208. "options": {
  209. "colorMode": "value",
  210. "graphMode": "none",
  211. "justifyMode": "center",
  212. "orientation": "horizontal",
  213. "percentChangeColorMode": "standard",
  214. "reduceOptions": {
  215. "calcs": [
  216. "lastNotNull"
  217. ],
  218. "fields": "",
  219. "values": false
  220. },
  221. "showPercentChange": false,
  222. "text": {},
  223. "textMode": "auto",
  224. "wideLayout": false
  225. },
  226. "pluginVersion": "12.0.1",
  227. "targets": [
  228. {
  229. "datasource": {
  230. "type": "prometheus",
  231. "uid": "eemfs9902ud4wc"
  232. },
  233. "disableTextWrap": false,
  234. "editorMode": "code",
  235. "expr": "openvpn_up",
  236. "format": "time_series",
  237. "fullMetaSearch": false,
  238. "includeNullMetadata": true,
  239. "instant": true,
  240. "intervalFactor": 1,
  241. "legendFormat": "",
  242. "refId": "A",
  243. "useBackend": false
  244. }
  245. ],
  246. "title": "",
  247. "type": "stat"
  248. },
  249. {
  250. "datasource": {
  251. "type": "prometheus",
  252. "uid": "eemfs9902ud4wc"
  253. },
  254. "description": "seconds since status update",
  255. "fieldConfig": {
  256. "defaults": {
  257. "decimals": 0,
  258. "displayName": "Last status update:",
  259. "mappings": [
  260. {
  261. "options": {
  262. "match": "null",
  263. "result": {
  264. "text": "N/A"
  265. }
  266. },
  267. "type": "special"
  268. }
  269. ],
  270. "thresholds": {
  271. "mode": "absolute",
  272. "steps": [
  273. {
  274. "color": "#299c46"
  275. },
  276. {
  277. "color": "rgba(237, 129, 40, 0.89)",
  278. "value": 120
  279. },
  280. {
  281. "color": "#d44a3a",
  282. "value": 180
  283. }
  284. ]
  285. },
  286. "unit": "s"
  287. },
  288. "overrides": []
  289. },
  290. "gridPos": {
  291. "h": 5,
  292. "w": 4,
  293. "x": 10,
  294. "y": 0
  295. },
  296. "id": 10,
  297. "maxDataPoints": 100,
  298. "options": {
  299. "colorMode": "value",
  300. "graphMode": "none",
  301. "justifyMode": "center",
  302. "orientation": "auto",
  303. "percentChangeColorMode": "standard",
  304. "reduceOptions": {
  305. "calcs": [
  306. "lastNotNull"
  307. ],
  308. "fields": "",
  309. "values": false
  310. },
  311. "showPercentChange": false,
  312. "textMode": "value_and_name",
  313. "wideLayout": false
  314. },
  315. "pluginVersion": "12.0.1",
  316. "targets": [
  317. {
  318. "datasource": {
  319. "type": "prometheus",
  320. "uid": "eemfs9902ud4wc"
  321. },
  322. "editorMode": "code",
  323. "expr": "time()-openvpn_status_last_timestamp_seconds",
  324. "format": "time_series",
  325. "instant": true,
  326. "intervalFactor": 1,
  327. "refId": "A"
  328. }
  329. ],
  330. "title": "",
  331. "type": "stat"
  332. },
  333. {
  334. "datasource": {
  335. "type": "prometheus",
  336. "uid": "eemfs9902ud4wc"
  337. },
  338. "fieldConfig": {
  339. "defaults": {
  340. "custom": {
  341. "align": "center",
  342. "cellOptions": {
  343. "type": "auto",
  344. "wrapText": true
  345. },
  346. "filterable": false,
  347. "inspect": false
  348. },
  349. "mappings": [],
  350. "thresholds": {
  351. "mode": "percentage",
  352. "steps": [
  353. {
  354. "color": "green"
  355. }
  356. ]
  357. }
  358. },
  359. "overrides": [
  360. {
  361. "matcher": {
  362. "id": "byName",
  363. "options": "Time"
  364. },
  365. "properties": [
  366. {
  367. "id": "displayName",
  368. "value": "Time"
  369. },
  370. {
  371. "id": "custom.hidden",
  372. "value": false
  373. },
  374. {
  375. "id": "custom.align",
  376. "value": "center"
  377. }
  378. ]
  379. },
  380. {
  381. "matcher": {
  382. "id": "byName",
  383. "options": "common_name"
  384. },
  385. "properties": [
  386. {
  387. "id": "displayName",
  388. "value": "Username"
  389. },
  390. {
  391. "id": "unit",
  392. "value": "short"
  393. },
  394. {
  395. "id": "decimals",
  396. "value": 2
  397. },
  398. {
  399. "id": "custom.align",
  400. "value": "center"
  401. }
  402. ]
  403. },
  404. {
  405. "matcher": {
  406. "id": "byName",
  407. "options": "virtual_addr"
  408. },
  409. "properties": [
  410. {
  411. "id": "displayName",
  412. "value": "Virtual_address"
  413. },
  414. {
  415. "id": "unit",
  416. "value": "short"
  417. },
  418. {
  419. "id": "decimals",
  420. "value": 2
  421. },
  422. {
  423. "id": "custom.align",
  424. "value": "center"
  425. }
  426. ]
  427. },
  428. {
  429. "matcher": {
  430. "id": "byName",
  431. "options": "Value"
  432. },
  433. "properties": [
  434. {
  435. "id": "custom.hidden",
  436. "value": true
  437. }
  438. ]
  439. },
  440. {
  441. "matcher": {
  442. "id": "byName",
  443. "options": "connection_time"
  444. },
  445. "properties": [
  446. {
  447. "id": "unit",
  448. "value": ""
  449. },
  450. {
  451. "id": "custom.hidden",
  452. "value": true
  453. }
  454. ]
  455. }
  456. ]
  457. },
  458. "gridPos": {
  459. "h": 26,
  460. "w": 10,
  461. "x": 14,
  462. "y": 0
  463. },
  464. "id": 4,
  465. "options": {
  466. "cellHeight": "sm",
  467. "footer": {
  468. "countRows": false,
  469. "fields": [],
  470. "reducer": [],
  471. "show": false
  472. },
  473. "frameIndex": 0,
  474. "showHeader": true,
  475. "sortBy": [
  476. {
  477. "desc": true,
  478. "displayName": "Value"
  479. }
  480. ]
  481. },
  482. "pluginVersion": "12.0.1",
  483. "targets": [
  484. {
  485. "datasource": {
  486. "type": "prometheus",
  487. "uid": "eemfs9902ud4wc"
  488. },
  489. "editorMode": "code",
  490. "expr": "sort_desc(\n sum(openvpn_client_bytes_received{common_name!=\"UNDEF\"})\n by (common_name, connection_time, virtual_addr, real_addr)\n)\n",
  491. "format": "table",
  492. "instant": true,
  493. "intervalFactor": 1,
  494. "refId": "A"
  495. }
  496. ],
  497. "title": "Current OpenVPN Clients",
  498. "type": "table"
  499. },
  500. {
  501. "datasource": {
  502. "type": "prometheus",
  503. "uid": "eemfs9902ud4wc"
  504. },
  505. "fieldConfig": {
  506. "defaults": {
  507. "color": {
  508. "mode": "thresholds"
  509. },
  510. "displayName": "Orgs:",
  511. "mappings": [],
  512. "thresholds": {
  513. "mode": "absolute",
  514. "steps": [
  515. {
  516. "color": "#FF9830"
  517. },
  518. {
  519. "color": "#EAB839",
  520. "value": 0
  521. },
  522. {
  523. "color": "dark-blue",
  524. "value": 1
  525. }
  526. ]
  527. },
  528. "unit": "none"
  529. },
  530. "overrides": []
  531. },
  532. "gridPos": {
  533. "h": 5,
  534. "w": 4,
  535. "x": 6,
  536. "y": 5
  537. },
  538. "id": 16,
  539. "maxDataPoints": 100,
  540. "options": {
  541. "colorMode": "value",
  542. "graphMode": "none",
  543. "justifyMode": "center",
  544. "orientation": "horizontal",
  545. "percentChangeColorMode": "standard",
  546. "reduceOptions": {
  547. "calcs": [
  548. "lastNotNull"
  549. ],
  550. "fields": "",
  551. "values": false
  552. },
  553. "showPercentChange": false,
  554. "text": {},
  555. "textMode": "value_and_name",
  556. "wideLayout": false
  557. },
  558. "pluginVersion": "12.0.1",
  559. "targets": [
  560. {
  561. "datasource": {
  562. "type": "prometheus",
  563. "uid": "eemfs9902ud4wc"
  564. },
  565. "editorMode": "code",
  566. "expr": "count(count by (common_name) (openvpn_client_bytes_received{common_name!=\"UNDEF\"}))",
  567. "format": "time_series",
  568. "instant": true,
  569. "intervalFactor": 1,
  570. "legendFormat": "",
  571. "refId": "A"
  572. }
  573. ],
  574. "title": "",
  575. "type": "stat"
  576. },
  577. {
  578. "datasource": {
  579. "type": "prometheus",
  580. "uid": "eemfs9902ud4wc"
  581. },
  582. "description": "Total connected clients",
  583. "fieldConfig": {
  584. "defaults": {
  585. "displayName": "Sensors:",
  586. "mappings": [
  587. {
  588. "options": {
  589. "match": "null",
  590. "result": {
  591. "text": "N/A"
  592. }
  593. },
  594. "type": "special"
  595. },
  596. {
  597. "options": {
  598. "0": {
  599. "text": "No"
  600. }
  601. },
  602. "type": "value"
  603. }
  604. ],
  605. "thresholds": {
  606. "mode": "absolute",
  607. "steps": [
  608. {
  609. "color": "#d44a3a"
  610. },
  611. {
  612. "color": "dark-red",
  613. "value": 0
  614. },
  615. {
  616. "color": "dark-blue",
  617. "value": 0.9999
  618. }
  619. ]
  620. },
  621. "unit": "none"
  622. },
  623. "overrides": []
  624. },
  625. "gridPos": {
  626. "h": 5,
  627. "w": 4,
  628. "x": 10,
  629. "y": 5
  630. },
  631. "id": 2,
  632. "maxDataPoints": 100,
  633. "options": {
  634. "colorMode": "value",
  635. "graphMode": "none",
  636. "justifyMode": "center",
  637. "orientation": "vertical",
  638. "percentChangeColorMode": "standard",
  639. "reduceOptions": {
  640. "calcs": [
  641. "lastNotNull"
  642. ],
  643. "fields": "",
  644. "values": false
  645. },
  646. "showPercentChange": false,
  647. "text": {},
  648. "textMode": "auto",
  649. "wideLayout": false
  650. },
  651. "pluginVersion": "12.0.1",
  652. "targets": [
  653. {
  654. "datasource": {
  655. "type": "prometheus",
  656. "uid": "eemfs9902ud4wc"
  657. },
  658. "editorMode": "code",
  659. "expr": "count(openvpn_client_bytes_sent)",
  660. "format": "time_series",
  661. "instant": true,
  662. "intervalFactor": 1,
  663. "legendFormat": "",
  664. "refId": "A"
  665. }
  666. ],
  667. "title": "",
  668. "type": "stat"
  669. },
  670. {
  671. "datasource": {
  672. "type": "prometheus",
  673. "uid": "eemfs9902ud4wc"
  674. },
  675. "fieldConfig": {
  676. "defaults": {
  677. "color": {
  678. "mode": "palette-classic"
  679. },
  680. "custom": {
  681. "axisBorderShow": false,
  682. "axisCenteredZero": false,
  683. "axisColorMode": "text",
  684. "axisLabel": "",
  685. "axisPlacement": "auto",
  686. "fillOpacity": 80,
  687. "gradientMode": "none",
  688. "hideFrom": {
  689. "legend": false,
  690. "tooltip": false,
  691. "viz": false
  692. },
  693. "lineWidth": 1,
  694. "scaleDistribution": {
  695. "type": "linear"
  696. },
  697. "thresholdsStyle": {
  698. "mode": "off"
  699. }
  700. },
  701. "mappings": [],
  702. "thresholds": {
  703. "mode": "absolute",
  704. "steps": [
  705. {
  706. "color": "green"
  707. },
  708. {
  709. "color": "red",
  710. "value": 80
  711. }
  712. ]
  713. },
  714. "unit": "bytes"
  715. },
  716. "overrides": [
  717. {
  718. "matcher": {
  719. "id": "byName",
  720. "options": "Field"
  721. },
  722. "properties": [
  723. {
  724. "id": "custom.axisPlacement",
  725. "value": "hidden"
  726. }
  727. ]
  728. }
  729. ]
  730. },
  731. "gridPos": {
  732. "h": 7,
  733. "w": 6,
  734. "x": 0,
  735. "y": 7
  736. },
  737. "id": 22,
  738. "options": {
  739. "barRadius": 0,
  740. "barWidth": 0.97,
  741. "fullHighlight": false,
  742. "groupWidth": 1,
  743. "legend": {
  744. "calcs": [],
  745. "displayMode": "list",
  746. "placement": "bottom",
  747. "showLegend": true
  748. },
  749. "orientation": "auto",
  750. "showValue": "auto",
  751. "stacking": "none",
  752. "tooltip": {
  753. "hideZeros": false,
  754. "mode": "single",
  755. "sort": "none"
  756. },
  757. "xTickLabelRotation": 0,
  758. "xTickLabelSpacing": 0
  759. },
  760. "pluginVersion": "12.0.1",
  761. "targets": [
  762. {
  763. "datasource": {
  764. "type": "prometheus",
  765. "uid": "eemfs9902ud4wc"
  766. },
  767. "editorMode": "code",
  768. "expr": "topk(6, sum(increase(openvpn_client_bytes_received{common_name!=\"UNDEF\"}[1d])+increase(openvpn_client_bytes_sent{common_name!=\"UNDEF\"}[1d]))by(common_name))",
  769. "format": "time_series",
  770. "instant": true,
  771. "interval": "",
  772. "intervalFactor": 1,
  773. "legendFormat": "{{ common_name }}",
  774. "refId": "A"
  775. }
  776. ],
  777. "timeFrom": "24h",
  778. "title": "Top Traffic",
  779. "type": "barchart"
  780. },
  781. {
  782. "datasource": {
  783. "type": "prometheus",
  784. "uid": "eemfs9902ud4wc"
  785. },
  786. "description": "Total Bytes recieved",
  787. "fieldConfig": {
  788. "defaults": {
  789. "decimals": 2,
  790. "displayName": "Received:",
  791. "mappings": [
  792. {
  793. "options": {
  794. "match": "null",
  795. "result": {
  796. "text": "N/A"
  797. }
  798. },
  799. "type": "special"
  800. }
  801. ],
  802. "thresholds": {
  803. "mode": "absolute",
  804. "steps": [
  805. {
  806. "color": "#5794F2"
  807. },
  808. {
  809. "color": "#5794F2",
  810. "value": 1
  811. },
  812. {
  813. "color": "#5794F2",
  814. "value": 2
  815. }
  816. ]
  817. },
  818. "unit": "bytes"
  819. },
  820. "overrides": []
  821. },
  822. "gridPos": {
  823. "h": 5,
  824. "w": 4,
  825. "x": 6,
  826. "y": 10
  827. },
  828. "hideTimeOverride": true,
  829. "id": 18,
  830. "maxDataPoints": 100,
  831. "options": {
  832. "colorMode": "value",
  833. "graphMode": "none",
  834. "justifyMode": "center",
  835. "orientation": "horizontal",
  836. "percentChangeColorMode": "standard",
  837. "reduceOptions": {
  838. "calcs": [
  839. "lastNotNull"
  840. ],
  841. "fields": "",
  842. "values": false
  843. },
  844. "showPercentChange": false,
  845. "textMode": "value_and_name",
  846. "wideLayout": false
  847. },
  848. "pluginVersion": "12.0.1",
  849. "targets": [
  850. {
  851. "datasource": {
  852. "type": "prometheus",
  853. "uid": "eemfs9902ud4wc"
  854. },
  855. "editorMode": "code",
  856. "expr": "sum(openvpn_client_bytes_received)",
  857. "format": "time_series",
  858. "instant": true,
  859. "intervalFactor": 1,
  860. "refId": "A"
  861. }
  862. ],
  863. "timeFrom": "24h",
  864. "title": "",
  865. "type": "stat"
  866. },
  867. {
  868. "datasource": {
  869. "type": "prometheus",
  870. "uid": "eemfs9902ud4wc"
  871. },
  872. "description": "Total Bytes sent by clients",
  873. "fieldConfig": {
  874. "defaults": {
  875. "decimals": 2,
  876. "displayName": "Sent:",
  877. "mappings": [
  878. {
  879. "options": {
  880. "match": "null",
  881. "result": {
  882. "text": "N/A"
  883. }
  884. },
  885. "type": "special"
  886. }
  887. ],
  888. "thresholds": {
  889. "mode": "absolute",
  890. "steps": [
  891. {
  892. "color": "#5794F2"
  893. },
  894. {
  895. "color": "#5794F2",
  896. "value": 1
  897. },
  898. {
  899. "color": "#5794F2",
  900. "value": 2
  901. }
  902. ]
  903. },
  904. "unit": "bytes"
  905. },
  906. "overrides": []
  907. },
  908. "gridPos": {
  909. "h": 5,
  910. "w": 4,
  911. "x": 10,
  912. "y": 10
  913. },
  914. "hideTimeOverride": true,
  915. "id": 19,
  916. "maxDataPoints": 100,
  917. "options": {
  918. "colorMode": "value",
  919. "graphMode": "none",
  920. "justifyMode": "center",
  921. "orientation": "horizontal",
  922. "percentChangeColorMode": "standard",
  923. "reduceOptions": {
  924. "calcs": [
  925. "lastNotNull"
  926. ],
  927. "fields": "",
  928. "values": false
  929. },
  930. "showPercentChange": false,
  931. "text": {},
  932. "textMode": "auto",
  933. "wideLayout": false
  934. },
  935. "pluginVersion": "12.0.1",
  936. "targets": [
  937. {
  938. "datasource": {
  939. "type": "prometheus",
  940. "uid": "eemfs9902ud4wc"
  941. },
  942. "editorMode": "code",
  943. "expr": "sum(openvpn_client_bytes_sent)",
  944. "format": "time_series",
  945. "instant": true,
  946. "intervalFactor": 1,
  947. "refId": "A"
  948. }
  949. ],
  950. "timeFrom": "24h",
  951. "title": "",
  952. "type": "stat"
  953. },
  954. {
  955. "datasource": {
  956. "type": "prometheus",
  957. "uid": "eemfs9902ud4wc"
  958. },
  959. "fieldConfig": {
  960. "defaults": {
  961. "color": {
  962. "mode": "palette-classic"
  963. },
  964. "custom": {
  965. "axisBorderShow": false,
  966. "axisCenteredZero": false,
  967. "axisColorMode": "text",
  968. "axisLabel": "Clients",
  969. "axisPlacement": "auto",
  970. "barAlignment": 0,
  971. "barWidthFactor": 0.6,
  972. "drawStyle": "line",
  973. "fillOpacity": 10,
  974. "gradientMode": "none",
  975. "hideFrom": {
  976. "legend": false,
  977. "tooltip": false,
  978. "viz": false
  979. },
  980. "insertNulls": false,
  981. "lineInterpolation": "linear",
  982. "lineWidth": 1,
  983. "pointSize": 5,
  984. "scaleDistribution": {
  985. "type": "linear"
  986. },
  987. "showPoints": "never",
  988. "spanNulls": false,
  989. "stacking": {
  990. "group": "A",
  991. "mode": "none"
  992. },
  993. "thresholdsStyle": {
  994. "mode": "off"
  995. }
  996. },
  997. "decimals": 0,
  998. "mappings": [],
  999. "min": 0,
  1000. "thresholds": {
  1001. "mode": "absolute",
  1002. "steps": [
  1003. {
  1004. "color": "green"
  1005. },
  1006. {
  1007. "color": "red",
  1008. "value": 80
  1009. }
  1010. ]
  1011. },
  1012. "unit": "short"
  1013. },
  1014. "overrides": []
  1015. },
  1016. "gridPos": {
  1017. "h": 11,
  1018. "w": 6,
  1019. "x": 0,
  1020. "y": 14
  1021. },
  1022. "id": 14,
  1023. "options": {
  1024. "legend": {
  1025. "calcs": [],
  1026. "displayMode": "list",
  1027. "placement": "bottom",
  1028. "showLegend": false
  1029. },
  1030. "tooltip": {
  1031. "hideZeros": false,
  1032. "mode": "multi",
  1033. "sort": "none"
  1034. }
  1035. },
  1036. "pluginVersion": "12.0.1",
  1037. "targets": [
  1038. {
  1039. "datasource": {
  1040. "type": "prometheus",
  1041. "uid": "eemfs9902ud4wc"
  1042. },
  1043. "editorMode": "code",
  1044. "expr": "count(openvpn_client_connected_since)",
  1045. "format": "time_series",
  1046. "instant": false,
  1047. "interval": "",
  1048. "intervalFactor": 1,
  1049. "legendFormat": "Connected OpenVPN Clients",
  1050. "refId": "A"
  1051. }
  1052. ],
  1053. "title": "Clients Connected",
  1054. "type": "timeseries"
  1055. }
  1056. ],
  1057. "preload": false,
  1058. "refresh": "5s",
  1059. "schemaVersion": 41,
  1060. "tags": [
  1061. "openvpn"
  1062. ],
  1063. "templating": {
  1064. "list": []
  1065. },
  1066. "time": {
  1067. "from": "now-24h",
  1068. "to": "now"
  1069. },
  1070. "timepicker": {},
  1071. "timezone": "",
  1072. "title": "OpenVPN Server",
  1073. "uid": "_1DM17HWk",
  1074. "version": 81
  1075. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
Main.java:1: error: class, interface, or enum expected
{
^
1 error
stdout
Standard output is empty