ನೈಜ ಸಮಯದಲ್ಲಿ PHP ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳ ಅಂಕಿಅಂಶಗಳು ಮತ್ತು ಮೇಲ್ವಿಚಾರಣೆ. ಕ್ಲಿಕ್‌ಹೌಸ್ ಮತ್ತು ಗ್ರಾಫನಾ ಪಿನ್ಬಾ ಸಹಾಯಕ್ಕೆ ಬರುತ್ತವೆ

ಪಿನ್‌ಬಾ_ಎಂಜಿನ್ ಮತ್ತು ಪಿನ್‌ಬೋರ್ಡ್ ಬದಲಿಗೆ ಕ್ಲಿಕ್‌ಹೌಸ್ ಮತ್ತು ಗ್ರಾಫನಾದೊಂದಿಗೆ ಪಿನ್‌ಬಾವನ್ನು ಹೇಗೆ ಬಳಸುವುದು ಎಂದು ಈ ಲೇಖನದಲ್ಲಿ ನಾನು ನಿಮಗೆ ಹೇಳುತ್ತೇನೆ.

PHP ಯೋಜನೆಯಲ್ಲಿ, ಕಾರ್ಯಕ್ಷಮತೆಯೊಂದಿಗೆ ಏನಾಗುತ್ತಿದೆ ಎಂಬುದನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು pinba ಬಹುಶಃ ಏಕೈಕ ವಿಶ್ವಾಸಾರ್ಹ ಮಾರ್ಗವಾಗಿದೆ. ನಿಜ, ಪಿನ್ಬಾ ಸಾಮಾನ್ಯವಾಗಿ ಸಮಸ್ಯೆಗಳನ್ನು ಈಗಾಗಲೇ ಗಮನಿಸಿದಾಗ ಮಾತ್ರ ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ ಮತ್ತು "ಎಲ್ಲಿ ಅಗೆಯಬೇಕು" ಎಂಬುದು ಸ್ಪಷ್ಟವಾಗಿಲ್ಲ.

ಈ ಅಥವಾ ಆ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಪ್ರತಿ ಸೆಕೆಂಡ್/ನಿಮಿಷಕ್ಕೆ ಎಷ್ಟು ಬಾರಿ ಕರೆಯಲಾಗುತ್ತದೆ ಮತ್ತು ಅವರು ಹೆಚ್ಚು ತಾರ್ಕಿಕವಾಗಿ ತೋರುವ ಸ್ಥಳಗಳಿಂದ ಪ್ರಾರಂಭಿಸಿ "ಸ್ಪರ್ಶದಿಂದ" ಆಪ್ಟಿಮೈಜ್ ಮಾಡಲು ಪ್ರಾರಂಭಿಸುತ್ತಾರೆ.

ಕೆಲವರು nginx ಲಾಗ್‌ಗಳನ್ನು ವಿಶ್ಲೇಷಿಸುತ್ತಾರೆ, ಇತರರು ನಿಧಾನ ಡೇಟಾಬೇಸ್ ಪ್ರಶ್ನೆಗಳನ್ನು ವಿಶ್ಲೇಷಿಸುತ್ತಾರೆ.

ಸಹಜವಾಗಿ, ಪಿನ್ಬಾ ಅತಿಯಾಗಿರುವುದಿಲ್ಲ, ಆದರೆ ಪ್ರತಿ ಯೋಜನೆಯು ಅದನ್ನು ಹೊಂದಿರದಿರಲು ಹಲವಾರು ಕಾರಣಗಳಿವೆ.

ನೈಜ ಸಮಯದಲ್ಲಿ PHP ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳ ಅಂಕಿಅಂಶಗಳು ಮತ್ತು ಮೇಲ್ವಿಚಾರಣೆ. ಕ್ಲಿಕ್‌ಹೌಸ್ ಮತ್ತು ಗ್ರಾಫನಾ ಪಿನ್ಬಾ ಸಹಾಯಕ್ಕೆ ಬರುತ್ತವೆ

ಮತ್ತು ಮೊದಲ ಕಾರಣವೆಂದರೆ ಅನುಸ್ಥಾಪನೆ.

ಪಿನ್ಬಾದ ಅನುಷ್ಠಾನದಿಂದ ಕೆಲವು ರೀತಿಯ "ನಿಷ್ಕಾಸ" ವನ್ನು ಹೆಚ್ಚು ಅಥವಾ ಕಡಿಮೆ ಪಡೆಯುವ ಸಲುವಾಗಿ, ಕೊನೆಯ ನಿಮಿಷಗಳಿಗೆ ಮಾತ್ರವಲ್ಲದೆ ದೀರ್ಘಕಾಲದವರೆಗೆ (ದಿನಗಳಿಂದ ತಿಂಗಳುಗಳವರೆಗೆ) ಮೆಟ್ರಿಕ್ಗಳನ್ನು ನೋಡಲು ಬಹಳ ಅಪೇಕ್ಷಣೀಯವಾಗಿದೆ.

ಇದಕ್ಕಾಗಿ ನಿಮಗೆ ಅಗತ್ಯವಿದೆ:

  • php ಗಾಗಿ ವಿಸ್ತರಣೆಯನ್ನು ಸ್ಥಾಪಿಸಿ (ಮತ್ತು ನೀವು nginx ಗಾಗಿ ಮಾಡ್ಯೂಲ್ ಅನ್ನು ಬಯಸಬಹುದು)
  • mysql ಗಾಗಿ ಕಂಪೈಲ್ ವಿಸ್ತರಣೆ
  • ಪಿನ್ಬೋರ್ಡ್ ಅನ್ನು ಸ್ಥಾಪಿಸಿ ಮತ್ತು ಕ್ರಾನ್ ಅನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ

Pinba ಬಗ್ಗೆ ಸಣ್ಣ ಪ್ರಮಾಣದ ಮಾಹಿತಿಯಿಂದಾಗಿ, ಇದು PHP5 ನಲ್ಲಿ ಮಾತ್ರ ಕೆಲಸ ಮಾಡಿದೆ ಮತ್ತು ಇದು ಹಿಂದಿನ ವಿಷಯವಾಗಿದೆ ಎಂದು ಅನೇಕ ಜನರು ಅನಿಸಿಕೆ ಹೊಂದಿದ್ದಾರೆ, ಆದರೆ ನಾವು ನಂತರ ನೋಡುವಂತೆ, ಇದು ಹಾಗಲ್ಲ.

ಮೊದಲ ಹಂತವು ಸರಳವಾಗಿದೆ, ನೀವು ಮಾಡಬೇಕಾಗಿರುವುದು ಆಜ್ಞೆಯನ್ನು ಚಲಾಯಿಸುವುದು:

apt install php-pinba

ಈ ವಿಸ್ತರಣೆಯು php 7.3 ವರೆಗಿನ ರೆಪೊಸಿಟರಿಗಳಲ್ಲಿ ಲಭ್ಯವಿದೆ ಮತ್ತು ನೀವು ಏನನ್ನೂ ಕಂಪೈಲ್ ಮಾಡುವ ಅಗತ್ಯವಿಲ್ಲ.

ಅನುಸ್ಥಾಪನಾ ಆಜ್ಞೆಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಿದ ನಂತರ, ಸ್ವರೂಪದಲ್ಲಿ ಪ್ರತಿ ಸ್ಕ್ರಿಪ್ಟ್‌ಗೆ (ಚಾಲನೆಯಲ್ಲಿರುವ ಸಮಯ, ಮೆಮೊರಿ, ಇತ್ಯಾದಿ) ಮೆಟ್ರಿಕ್‌ಗಳನ್ನು ಸಂಗ್ರಹಿಸುವ ಮತ್ತು ಕಳುಹಿಸುವ ಕಾರ್ಯ ವಿಸ್ತರಣೆಯನ್ನು ನಾವು ತಕ್ಷಣ ಸ್ವೀಕರಿಸುತ್ತೇವೆ. ಪ್ರೊಟೊಬುಫ್ udp ಮೂಲಕ 127.0.0.1:30002.

ಇಲ್ಲಿಯವರೆಗೆ ಯಾರೂ ಈ UDP ಪ್ಯಾಕೆಟ್‌ಗಳನ್ನು ಹಿಡಿದಿಲ್ಲ ಅಥವಾ ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಿಲ್ಲ, ಆದರೆ ಇದು ನಿಮ್ಮ PHP ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳ ವೇಗ ಅಥವಾ ಸ್ಥಿರತೆಯನ್ನು ಯಾವುದೇ ರೀತಿಯಲ್ಲಿ ಋಣಾತ್ಮಕವಾಗಿ ಪರಿಣಾಮ ಬೀರುವುದಿಲ್ಲ.

ಇತ್ತೀಚಿನವರೆಗೂ, ಈ UDP ಪ್ಯಾಕೆಟ್‌ಗಳನ್ನು ಹಿಡಿಯುವ ಮತ್ತು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸುವ ಏಕೈಕ ಅಪ್ಲಿಕೇಶನ್ ಆಗಿತ್ತು ಪಿನ್ಬಾ_ಎಂಜಿನ್. ವಿವರಣೆ "ಸರಳ ಮತ್ತು ಸಂಕ್ಷಿಪ್ತಅನುಸ್ಥಾಪನೆಯು ಅದನ್ನು ಮತ್ತೆ ಓದುವ ಮತ್ತು ಪರಿಶೀಲಿಸುವ ಬಯಕೆಯನ್ನು ನಿರುತ್ಸಾಹಗೊಳಿಸುತ್ತದೆ. ಕಿಲೋಮೀಟರ್ ಉದ್ದದ ಅವಲಂಬನೆಗಳ ಪಟ್ಟಿಗಳು ಪ್ಯಾಕೇಜ್‌ಗಳ ಹೆಸರುಗಳು ಮತ್ತು ಪ್ರೋಗ್ರಾಂಗಳ ಹೆಸರುಗಳು ಮತ್ತು ಅವುಗಳ ಸ್ಥಾಪನೆಯೊಂದಿಗೆ ಪ್ರತ್ಯೇಕ ಪುಟಗಳಿಗೆ ಲಿಂಕ್‌ಗಳನ್ನು ಒಳಗೊಂಡಿರುತ್ತವೆ ಮತ್ತು ಅವುಗಳು ಇತರ ಅವಲಂಬನೆಗಳಿಗೆ ತಮ್ಮದೇ ಆದ ಲಿಂಕ್‌ಗಳನ್ನು ಹೊಂದಿವೆ. ಈ ಕ್ರೌರ್ಯವನ್ನು ಎದುರಿಸಲು ಯಾರಿಗೂ ಸಮಯ ಅಥವಾ ಬಯಕೆ ಇಲ್ಲ.

ಅನುಸ್ಥಾಪನಾ ಪ್ರಕ್ರಿಯೆ ಪಿನ್ಬಾ2 ಮಾಡಲಿಲ್ಲ ವಿಶೇಷವಾಗಿ ಸುಲಭ.

ಬಹುಶಃ ಒಂದು ದಿನ ಪಿನ್ಬಾ 10 ಅನ್ನು ಒಂದು ಅಥವಾ ಎರಡು ಆಜ್ಞೆಗಳೊಂದಿಗೆ ಸ್ಥಾಪಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ ಮತ್ತು ಅದನ್ನು ಹೇಗೆ ಮಾಡಬೇಕೆಂದು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ವಸ್ತುಗಳ ಗುಂಪನ್ನು ಓದಬೇಕಾಗಿಲ್ಲ, ಆದರೆ ಇದೀಗ ಇದು ಹಾಗಲ್ಲ.

ನೀವು pinba_engine ಅನ್ನು ಸ್ಥಾಪಿಸಿದರೆ, ಇದು ಕೇವಲ ಅರ್ಧದಷ್ಟು ಯುದ್ಧವಾಗಿದೆ. ಎಲ್ಲಾ ನಂತರ, ಇಲ್ಲದೆ ಪಿನ್ಬೋರ್ಡ್ ನೀವು ಕಳೆದ ಕೆಲವು ನಿಮಿಷಗಳ ಡೇಟಾಗೆ ನಿಮ್ಮನ್ನು ಮಿತಿಗೊಳಿಸಬೇಕಾಗುತ್ತದೆ, ಅಥವಾ ನೀವೇ ಡೇಟಾವನ್ನು ಒಟ್ಟುಗೂಡಿಸಿ, ಸಂಗ್ರಹಿಸಬೇಕು ಮತ್ತು ದೃಶ್ಯೀಕರಿಸಬೇಕು. ಪಿನ್‌ಬೋರ್ಡ್ ಬಳಸಲು ತುಂಬಾ ಸರಳವಾಗಿರುವುದು ಒಳ್ಳೆಯದು ಅನುಸ್ಥಾಪನ.

ಪಿಎಚ್‌ಪಿಯಿಂದ ಎಲ್ಲಾ ಮೆಟ್ರಿಕ್‌ಗಳನ್ನು ಈಗಾಗಲೇ ಪ್ರೊಟೊಬಫ್ ಫಾರ್ಮ್ಯಾಟ್‌ನಲ್ಲಿ ಯುಡಿಪಿ ಪೋರ್ಟ್‌ಗೆ ಕಳುಹಿಸಿದ್ದರೆ ಮತ್ತು ನಿಮಗೆ ಬೇಕಾಗಿರುವುದು ಅವುಗಳನ್ನು ಹಿಡಿಯುವ ಮತ್ತು ಕೆಲವು ರೀತಿಯ ಸಂಗ್ರಹಣೆಯಲ್ಲಿ ಇರಿಸುವ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಬರೆಯುವುದು ಏಕೆ ಎಂದು ತೋರುತ್ತದೆ? ಸ್ಪಷ್ಟವಾಗಿ, ಈ ಆಲೋಚನೆಯೊಂದಿಗೆ ಬಂದ ಆ ಅಭಿವರ್ಧಕರು ತಕ್ಷಣವೇ ತಮ್ಮ ಸ್ವಂತ ಆಲೋಚನೆಗಳನ್ನು ಬರೆಯಲು ಕುಳಿತುಕೊಂಡರು, ಅವುಗಳಲ್ಲಿ ಕೆಲವು GitHub ನಲ್ಲಿ ಕೊನೆಗೊಂಡಿವೆ.

ಕೆಳಗಿನವುಗಳು ಸಂಗ್ರಹಣೆಯಲ್ಲಿ ಮೆಟ್ರಿಕ್‌ಗಳನ್ನು ಉಳಿಸುವ ನಾಲ್ಕು ತೆರೆದ ಮೂಲ ಯೋಜನೆಗಳ ಅವಲೋಕನವಾಗಿದೆ, ಈ ಡೇಟಾವನ್ನು ಸುಲಭವಾಗಿ ಹಿಂಪಡೆಯಬಹುದು ಮತ್ತು ದೃಶ್ಯೀಕರಿಸಬಹುದು, ಉದಾಹರಣೆಗೆ, ಗ್ರಾಫನಾ ಬಳಸಿ.

olegfedoseev/pinba-server (ನವೆಂಬರ್ 2017)

OpenTSDB ಗೆ ಮೆಟ್ರಿಕ್‌ಗಳನ್ನು ಉಳಿಸುವ ಪ್ರಯಾಣದಲ್ಲಿರುವಾಗ udp ಸರ್ವರ್. ಬಹುಶಃ ನೀವು ಈಗಾಗಲೇ ನಿಮ್ಮ ಯೋಜನೆಯಲ್ಲಿ OpenTSDB ಅನ್ನು ಬಳಸುತ್ತಿದ್ದರೆ, ಈ ಪರಿಹಾರವು ನಿಮಗೆ ಸರಿಹೊಂದುತ್ತದೆ, ಇಲ್ಲದಿದ್ದರೆ ನಾನು ಅದನ್ನು ಹಾದುಹೋಗಲು ಶಿಫಾರಸು ಮಾಡುತ್ತೇವೆ.

olegfedoseev/pinba-influxdb (ಜೂನ್ 2018)

ಯುಡಿಪಿ ಸರ್ವರ್ ಆನ್ ಗೋ, ಅದೇ ಹ್ಯಾಬ್ರೌಸರ್, ಇದು ಈ ಬಾರಿ ಇನ್‌ಫ್ಲಕ್ಸ್‌ಡಿಬಿಯಲ್ಲಿ ಮೆಟ್ರಿಕ್‌ಗಳನ್ನು ಸಂಗ್ರಹಿಸುತ್ತದೆ. ಅನೇಕ ಯೋಜನೆಗಳು ಈಗಾಗಲೇ ಮೇಲ್ವಿಚಾರಣೆಗಾಗಿ InfluxDB ಅನ್ನು ಬಳಸುತ್ತಿವೆ, ಆದ್ದರಿಂದ ಈ ಪರಿಹಾರವು ಅವರಿಗೆ ಪರಿಪೂರ್ಣವಾಗಬಹುದು.

ಒಳಿತು:

  • InfluxDB ಅನುಮತಿಸುತ್ತದೆ ಸ್ವೀಕರಿಸಿದ ಮೆಟ್ರಿಕ್‌ಗಳನ್ನು ಒಟ್ಟುಗೂಡಿಸಿ ಮತ್ತು ನಿರ್ದಿಷ್ಟ ಸಮಯದ ನಂತರ ಮೂಲವನ್ನು ಅಳಿಸಿ.

ಕಾನ್ಸ್:

  • ಈ ಪರಿಹಾರವು ಟೈಮರ್‌ಗಳಲ್ಲಿ ಮಾಹಿತಿಯನ್ನು ಉಳಿಸುವುದಿಲ್ಲ.
  • InfluxDB ಸೈಟ್ ಪುಟ ವಿಳಾಸಗಳನ್ನು ಟ್ಯಾಗ್‌ಗಳಾಗಿ ಸಂಗ್ರಹಿಸುತ್ತದೆ ಮತ್ತು ನೀವು ಅನೇಕ ಅನನ್ಯ ಪುಟ ವಿಳಾಸಗಳನ್ನು ಹೊಂದಿದ್ದರೆ, ಇದು ಕಾರಣವಾಗುತ್ತದೆ ಹೆಚ್ಚಿದ ಬಳಕೆ ಯಾದೃಚ್ಛಿಕ ಪ್ರವೇಶ ಮೆಮೊರಿ. ಒಂದು ನಿರ್ದಿಷ್ಟ ಕ್ಷಣದಿಂದ ಅವನು "ಹುಚ್ಚನಂತೆ ನೆನಪನ್ನು ತಿನ್ನಲು ಆರಂಭಿಸುತ್ತದೆ". (ಮೂಲ)

ಕ್ಲಿಕ್‌ಹೌಸ್-ನಿಂಜಾ/ಪ್ರೋಟಾನ್ (ಜನವರಿ 2019)

udp ಸರ್ವರ್ ಆನ್ ಗೋ, ಇದು ಕ್ಲಿಕ್‌ಹೌಸ್‌ನಲ್ಲಿ ಮೆಟ್ರಿಕ್‌ಗಳನ್ನು ಉಳಿಸುತ್ತದೆ. ಇದು ನನ್ನ ಸ್ನೇಹಿತನ ಪರಿಹಾರವಾಗಿದೆ. ಅದರ ಪರಿಚಯವಾದ ನಂತರವೇ ನಾನು ಪಿನ್ಬು ಮತ್ತು ಕ್ಲಿಕ್‌ಹೌಸ್ ಅನ್ನು ತೆಗೆದುಕೊಳ್ಳುವ ಸಮಯ ಎಂದು ನಿರ್ಧರಿಸಿದೆ.

ಒಳಿತು:

  • ಅಂತಹ ಕಾರ್ಯಗಳಿಗೆ ಕ್ಲಿಕ್‌ಹೌಸ್ ಸೂಕ್ತವಾಗಿದೆ; ಇದು ಡೇಟಾವನ್ನು ಸಂಕುಚಿತಗೊಳಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ ಆದ್ದರಿಂದ ನೀವು ಎಲ್ಲಾ ಕಚ್ಚಾ ಡೇಟಾವನ್ನು ಒಟ್ಟುಗೂಡಿಸದೆಯೇ ಸಂಗ್ರಹಿಸಬಹುದು
  • ಅಗತ್ಯವಿದ್ದರೆ, ಫಲಿತಾಂಶದ ಮೆಟ್ರಿಕ್‌ಗಳನ್ನು ನೀವು ಸುಲಭವಾಗಿ ಒಟ್ಟುಗೂಡಿಸಬಹುದು
  • ಗ್ರಾಫಾನಾಗೆ ಸಿದ್ಧವಾದ ಟೆಂಪ್ಲೇಟ್
  • ಟೈಮರ್‌ಗಳಲ್ಲಿ ಮಾಹಿತಿಯನ್ನು ಉಳಿಸುತ್ತದೆ

ಕಾನ್ಸ್:

  • ಪ್ರಾಣಾಂತಿಕ ಲೋಪ
  • ಡೇಟಾಬೇಸ್ ಮತ್ತು ಕೋಷ್ಟಕಗಳ ಹೆಸರು, ಸರ್ವರ್‌ನ ವಿಳಾಸ ಮತ್ತು ಪೋರ್ಟ್ ಅನ್ನು ನೀವು ಕಾನ್ಫಿಗರ್ ಮಾಡುವ ಯಾವುದೇ ಸಂರಚನೆಯಿಲ್ಲ.
  • ಕಚ್ಚಾ ಡೇಟಾವನ್ನು ಸಂಗ್ರಹಿಸುವಾಗ, ಪುಟ ಮತ್ತು ಡೊಮೇನ್ ವಿಳಾಸಗಳನ್ನು ಸಂಗ್ರಹಿಸಲು ಸಹಾಯಕ ನಿಘಂಟು ಕೋಷ್ಟಕವನ್ನು ಬಳಸಲಾಗುತ್ತದೆ, ಇದು ನಂತರದ ಪ್ರಶ್ನೆಗಳನ್ನು ಸಂಕೀರ್ಣಗೊಳಿಸುತ್ತದೆ
  • ಮೊದಲ ಮೈನಸ್‌ನಿಂದ ಅನುಸರಿಸುವ ಇತರ ಸಣ್ಣ ವಿಷಯಗಳು

pinba-server/pinba-server (ಏಪ್ರಿಲ್ 2019)

php ನಲ್ಲಿ udp ಸರ್ವರ್, ಇದು ಕ್ಲಿಕ್‌ಹೌಸ್‌ನಲ್ಲಿ ಮೆಟ್ರಿಕ್‌ಗಳನ್ನು ಉಳಿಸುತ್ತದೆ. ಇದು ನನ್ನ ಪರಿಹಾರವಾಗಿದೆ, ಇದು ಪಿನ್ಬಾ, ಕ್ಲಿಕ್‌ಹೌಸ್ ಮತ್ತು ಪ್ರೊಟೊಬಫ್ ಅನ್ನು ತಿಳಿದುಕೊಳ್ಳುವ ಫಲಿತಾಂಶವಾಗಿದೆ. ನಾನು ಈ ಸಂಪೂರ್ಣ ಗುಂಪನ್ನು ವಿಂಗಡಿಸುತ್ತಿರುವಾಗ, ನಾನು "ಪರಿಕಲ್ಪನೆಯ ಪುರಾವೆ" ಅನ್ನು ಬರೆದಿದ್ದೇನೆ, ಅದು ನನಗೆ ಅನಿರೀಕ್ಷಿತವಾಗಿ, ಗಮನಾರ್ಹ ಸಂಪನ್ಮೂಲಗಳನ್ನು ಬಳಸಲಿಲ್ಲ (30 MB RAM ಮತ್ತು ಎಂಟು ಪ್ರೊಸೆಸರ್ ಕೋರ್‌ಗಳಲ್ಲಿ 1% ಕ್ಕಿಂತ ಕಡಿಮೆ), ಆದ್ದರಿಂದ ನಾನು ಅದನ್ನು ಸಾರ್ವಜನಿಕರೊಂದಿಗೆ ಹಂಚಿಕೊಳ್ಳಲು ನಿರ್ಧರಿಸಿದೆ.

ಅನುಕೂಲಗಳು ಹಿಂದಿನ ಪರಿಹಾರದಂತೆಯೇ ಇರುತ್ತವೆ, ನಾನು ಮೂಲ pinba_engine ನಿಂದ ಸಾಮಾನ್ಯ ಹೆಸರುಗಳನ್ನು ಸಹ ಬಳಸಿದ್ದೇನೆ. ವಿವಿಧ ಕೋಷ್ಟಕಗಳಲ್ಲಿ ಮೆಟ್ರಿಕ್‌ಗಳನ್ನು ಉಳಿಸಲು ಹಲವಾರು ಪಿನ್‌ಬೇಸ್ ಸರ್ವರ್ ನಿದರ್ಶನಗಳನ್ನು ಏಕಕಾಲದಲ್ಲಿ ಪ್ರಾರಂಭಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುವ ಸಂರಚನೆಯನ್ನು ನಾನು ಸೇರಿಸಿದ್ದೇನೆ - ನೀವು php ನಿಂದ ಮಾತ್ರವಲ್ಲದೆ nginx ನಿಂದ ಡೇಟಾವನ್ನು ಸಂಗ್ರಹಿಸಲು ಬಯಸಿದರೆ ಇದು ಉಪಯುಕ್ತವಾಗಿದೆ.
ಅನಾನುಕೂಲಗಳು - “ಮಾರಣಾಂತಿಕ ನ್ಯೂನತೆ” ಮತ್ತು ವೈಯಕ್ತಿಕವಾಗಿ ನಿಮಗೆ ಸರಿಹೊಂದದ ಸಣ್ಣ ವಿಷಯಗಳು, ಆದರೆ ನನ್ನ ಪರಿಹಾರವು “ಚಪ್ಪಲಿಯಂತೆ ಸರಳವಾಗಿದೆ” ಮತ್ತು ಕೇವಲ 100 ಸಾಲುಗಳ ಕೋಡ್ ಅನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ, ಆದ್ದರಿಂದ ಯಾವುದೇ PHP ಡೆವಲಪರ್ ಅವರು ಇಷ್ಟಪಡದದನ್ನು ಬದಲಾಯಿಸಬಹುದು ಒಂದೆರಡು ನಿಮಿಷಗಳಲ್ಲಿ.

ಇದು ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ

UDP ಪೋರ್ಟ್ 30002 ಅನ್ನು ಆಲಿಸಲಾಗಿದೆ. ಎಲ್ಲಾ ಒಳಬರುವ ಪ್ಯಾಕೆಟ್‌ಗಳನ್ನು ಪ್ರೋಟೋಬಫ್ ಸ್ಕೀಮ್ ಪ್ರಕಾರ ಡಿಕೋಡ್ ಮಾಡಲಾಗುತ್ತದೆ ಮತ್ತು ಒಟ್ಟುಗೂಡಿಸಲಾಗುತ್ತದೆ. ನಿಮಿಷಕ್ಕೊಮ್ಮೆ, ಕ್ಲಿಕ್‌ಹೌಸ್‌ನಲ್ಲಿ pinba.requests ಟೇಬಲ್‌ಗೆ ಪ್ಯಾಕೆಟ್ ಅನ್ನು ಸೇರಿಸಲಾಗುತ್ತದೆ. (ಎಲ್ಲಾ ನಿಯತಾಂಕಗಳನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಲಾಗಿದೆ ಸಂರಚನೆ)

ಕ್ಲಿಕ್ಹೌಸ್ ಬಗ್ಗೆ ಸ್ವಲ್ಪ

ಕ್ಲಿಕ್‌ಹೌಸ್ ವಿಭಿನ್ನ ಡೇಟಾ ಶೇಖರಣಾ ಎಂಜಿನ್‌ಗಳನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ. ಸಾಮಾನ್ಯವಾಗಿ ಬಳಸುವ ಒಂದು MergeTree ಆಗಿದೆ.

ಕೆಲವು ಹಂತದಲ್ಲಿ ನೀವು ಸಾರ್ವಕಾಲಿಕವಾಗಿ ಒಟ್ಟುಗೂಡಿಸಿದ ಡೇಟಾವನ್ನು ಸಂಗ್ರಹಿಸಲು ನಿರ್ಧರಿಸಿದರೆ ಮತ್ತು ಕಚ್ಚಾ ಡೇಟಾವನ್ನು ಕೊನೆಯ ಬಾರಿಗೆ ಮಾತ್ರ ಸಂಗ್ರಹಿಸಲು ನಿರ್ಧರಿಸಿದರೆ, ನಂತರ ನೀವು ಗುಂಪಿನೊಂದಿಗೆ ವಸ್ತುರೂಪದ ವೀಕ್ಷಣೆಯನ್ನು ರಚಿಸಬಹುದು ಮತ್ತು ನಿಯತಕಾಲಿಕವಾಗಿ ಮುಖ್ಯ pinba.requests ಟೇಬಲ್ ಅನ್ನು ಸ್ವಚ್ಛಗೊಳಿಸಬಹುದು, ಆದರೆ ಎಲ್ಲಾ ಡೇಟಾವು ಉಳಿಯುತ್ತದೆ ವಸ್ತುನಿಷ್ಠ ನೋಟ. ಇದಲ್ಲದೆ, pinba.requests ಕೋಷ್ಟಕವನ್ನು ರಚಿಸುವಾಗ, ನೀವು "ಎಂಜಿನ್ = ಶೂನ್ಯ" ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಬಹುದು, ನಂತರ ಕಚ್ಚಾ ಡೇಟಾವನ್ನು ಡಿಸ್ಕ್‌ಗೆ ಉಳಿಸಲಾಗುವುದಿಲ್ಲ ಮತ್ತು ಅದೇ ಸಮಯದಲ್ಲಿ ಅದು ಇನ್ನೂ ವಸ್ತುರೂಪದ ವೀಕ್ಷಣೆಯಲ್ಲಿ ಕೊನೆಗೊಳ್ಳುತ್ತದೆ ಮತ್ತು ಒಟ್ಟುಗೂಡಿಸಲ್ಪಡುತ್ತದೆ . ನಾನು nginx ಮೆಟ್ರಿಕ್‌ಗಳಿಗಾಗಿ ಈ ಯೋಜನೆಯನ್ನು ಬಳಸುತ್ತೇನೆ, ಏಕೆಂದರೆ nginx ನಲ್ಲಿ ನಾನು php ಗಿಂತ 50 ಪಟ್ಟು ಹೆಚ್ಚು ವಿನಂತಿಗಳನ್ನು ಹೊಂದಿದ್ದೇನೆ.

ಆದ್ದರಿಂದ, ನೀವು ಬಹಳ ದೂರ ಬಂದಿದ್ದೀರಿ ಮತ್ತು ನಾನು ನಿಮ್ಮನ್ನು ಅರ್ಧದಾರಿಯಲ್ಲೇ ಬಿಡಲು ಬಯಸುವುದಿಲ್ಲ, ಆದ್ದರಿಂದ ಮುಂದಿನದು ನನ್ನ ಪರಿಹಾರದ ಸ್ಥಾಪನೆ ಮತ್ತು ಸಂರಚನೆಯ ವಿವರವಾದ ವಿವರಣೆ ಮತ್ತು ನಿಮಗೆ ಅಗತ್ಯವಿರುವ ಎಲ್ಲವೂ, ಹಾಗೆಯೇ ಒಂದಕ್ಕಿಂತ ಹೆಚ್ಚು ಹಡಗುಗಳಿಗೆ ಕಾರಣವಾದ ಮೋಸಗಳು ಕುಸಿತಕ್ಕೆ. ಸಂಪೂರ್ಣ ಅನುಸ್ಥಾಪನಾ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಉಬುಂಟು 18.04 LTS ಮತ್ತು Centos 7 ಗಾಗಿ ವಿವರಿಸಲಾಗಿದೆ; ಪ್ರಕ್ರಿಯೆಯು ಇತರ ವಿತರಣೆಗಳು ಮತ್ತು ಆವೃತ್ತಿಗಳಲ್ಲಿ ಸ್ವಲ್ಪ ಭಿನ್ನವಾಗಿರಬಹುದು.

ಸೆಟ್ಟಿಂಗ್

ನಾನು ಅಗತ್ಯವಿರುವ ಎಲ್ಲಾ ಆಜ್ಞೆಗಳನ್ನು ಹಾಕುತ್ತೇನೆ ಡಾಕರ್‌ಫೈಲ್ ಸೂಚನೆಗಳ ಪುನರುತ್ಪಾದನೆಯನ್ನು ಸುಲಭಗೊಳಿಸಲು. ಅಪಾಯಗಳನ್ನು ಮಾತ್ರ ಕೆಳಗೆ ವಿವರಿಸಲಾಗುವುದು.

php-pinba

ಅನುಸ್ಥಾಪನೆಯ ನಂತರ, /etc/php/7.2/fpm/conf.d/20-pinba.ini ಫೈಲ್‌ನಲ್ಲಿ ನೀವು ಎಲ್ಲಾ ಆಯ್ಕೆಗಳನ್ನು ಅನ್‌ಕಾಮೆಂಟ್ ಮಾಡಿದ್ದೀರಿ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ. ಕೆಲವು ವಿತರಣೆಗಳಲ್ಲಿ (ಉದಾ ಸೆಂಟೋಸ್) ಅವರು ಕಾಮೆಂಟ್ ಮಾಡಬಹುದು.

extension=pinba.so
pinba.enabled=1
pinba.server=127.0.0.1:30002

ಕ್ಲಿಕ್ಹೌಸ್

ಅನುಸ್ಥಾಪನೆಯ ಸಮಯದಲ್ಲಿ, ಡೀಫಾಲ್ಟ್ ಬಳಕೆದಾರರಿಗೆ ಪಾಸ್‌ವರ್ಡ್ ಹೊಂದಿಸಲು ಕ್ಲಿಕ್‌ಹೌಸ್ ನಿಮ್ಮನ್ನು ಕೇಳುತ್ತದೆ. ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ, ಈ ಬಳಕೆದಾರರು ಎಲ್ಲಾ IP ಗಳಿಂದ ಪ್ರವೇಶಿಸಬಹುದು, ಆದ್ದರಿಂದ ನಿಮ್ಮ ಸರ್ವರ್‌ನಲ್ಲಿ ನೀವು ಫೈರ್‌ವಾಲ್ ಹೊಂದಿಲ್ಲದಿದ್ದರೆ, ಅದಕ್ಕೆ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಹೊಂದಿಸಲು ಮರೆಯದಿರಿ. /etc/clickhouse-server/users.xml ಫೈಲ್‌ನಲ್ಲಿ ಅನುಸ್ಥಾಪನೆಯ ನಂತರವೂ ಇದನ್ನು ಮಾಡಬಹುದು.

ಕ್ಲಿಕ್‌ಹೌಸ್ 9000 ಸೇರಿದಂತೆ ಹಲವಾರು ಪೋರ್ಟ್‌ಗಳನ್ನು ಬಳಸುತ್ತದೆ ಎಂಬುದು ಗಮನಿಸಬೇಕಾದ ಅಂಶವಾಗಿದೆ. ಈ ಪೋರ್ಟ್ ಅನ್ನು ಕೆಲವು ವಿತರಣೆಗಳಲ್ಲಿ php-fpm ಗಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ (ಉದಾಹರಣೆಗೆ, ಸೆಂಟೋಸ್). ನೀವು ಈಗಾಗಲೇ ಈ ಪೋರ್ಟ್ ಅನ್ನು ಬಳಸುತ್ತಿದ್ದರೆ, ನೀವು ಅದನ್ನು /etc/clickhouse-server/config.xml ಫೈಲ್‌ನಲ್ಲಿ ಇನ್ನೊಂದಕ್ಕೆ ಬದಲಾಯಿಸಬಹುದು.

ಕ್ಲಿಕ್‌ಹೌಸ್ ಪ್ಲಗಿನ್‌ನೊಂದಿಗೆ ಗ್ರಾಫನಾ

ಗ್ರಾಫನಾವನ್ನು ಸ್ಥಾಪಿಸಿದ ನಂತರ, ಲಾಗಿನ್ ನಿರ್ವಾಹಕ ಮತ್ತು ಪಾಸ್‌ವರ್ಡ್ ನಿರ್ವಾಹಕರನ್ನು ಬಳಸಿ. ನೀವು ಮೊದಲ ಬಾರಿಗೆ ಲಾಗ್ ಇನ್ ಮಾಡಿದಾಗ, ಹೊಸ ಪಾಸ್‌ವರ್ಡ್ ಹೊಂದಿಸಲು ಗ್ರಾಫಾನಾ ನಿಮ್ಮನ್ನು ಕೇಳುತ್ತದೆ.

ಮುಂದೆ, “+” -> ಆಮದು ಮೆನುಗೆ ಹೋಗಿ ಮತ್ತು ಆಮದು ಮಾಡಲು ಡ್ಯಾಶ್‌ಬೋರ್ಡ್ ಸಂಖ್ಯೆಯನ್ನು ಸೂಚಿಸಿ 10011. ನಾನು ಈ ಡ್ಯಾಶ್‌ಬೋರ್ಡ್ ಅನ್ನು ಸಿದ್ಧಪಡಿಸಿ ಅಪ್‌ಲೋಡ್ ಮಾಡಿದ್ದೇನೆ ಆದ್ದರಿಂದ ನೀವು ಅದನ್ನು ಮತ್ತೆ ಮಾಡಬೇಕಾಗಿಲ್ಲ.

ಮೂರನೇ ವ್ಯಕ್ತಿಯ ಪ್ಲಗಿನ್ ಮೂಲಕ ಕ್ಲಿಕ್‌ಹೌಸ್‌ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು ಗ್ರಾಫಾನಾ ಬೆಂಬಲಿಸುತ್ತದೆ, ಆದರೆ ಮೂರನೇ ವ್ಯಕ್ತಿಯ ಪ್ಲಗಿನ್‌ಗಳಿಗೆ ಗ್ರಾಫಾನಾ ಎಚ್ಚರಿಕೆಗಳನ್ನು ಹೊಂದಿಲ್ಲ (ಹಲವಾರು ವರ್ಷಗಳಿಂದ ಇದಕ್ಕಾಗಿ ಟಿಕೆಟ್ ಇದೆ).

ಪಿನ್ಬಾ-ಸರ್ವರ್

ಪ್ರೋಟೋಬಫ್ ಮತ್ತು ಲಿಬೆವೆಂಟ್ ಅನ್ನು ಸ್ಥಾಪಿಸುವುದು ಐಚ್ಛಿಕವಾಗಿರುತ್ತದೆ, ಆದರೆ ಪಿನ್ಬಾ-ಸರ್ವರ್ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಸುಧಾರಿಸುತ್ತದೆ. ನೀವು /opt ಹೊರತುಪಡಿಸಿ ಬೇರೆ ಫೋಲ್ಡರ್‌ನಲ್ಲಿ pinba-server ಅನ್ನು ಸ್ಥಾಪಿಸಿದರೆ, ನಂತರ ನೀವು ಸರಿಪಡಿಸಬೇಕಾಗುತ್ತದೆ systemd ಸ್ಕ್ರಿಪ್ಟ್ ಫೈಲ್

nginx ಗಾಗಿ pinba ಮಾಡ್ಯೂಲ್

ಮಾಡ್ಯೂಲ್ ಅನ್ನು ಕಂಪೈಲ್ ಮಾಡಲು, ನಿಮ್ಮ ಸರ್ವರ್‌ನಲ್ಲಿ ಈಗಾಗಲೇ ಸ್ಥಾಪಿಸಲಾದ nginx ನ ಅದೇ ಆವೃತ್ತಿಯ ಮೂಲ ಕೋಡ್‌ಗಳು, ಹಾಗೆಯೇ ಅದೇ ಸಂಕಲನ ಆಯ್ಕೆಗಳು ಬೇಕಾಗುತ್ತವೆ, ಇಲ್ಲದಿದ್ದರೆ ನಿರ್ಮಾಣವು ಯಶಸ್ವಿಯಾಗುತ್ತದೆ, ಆದರೆ ಮಾಡ್ಯೂಲ್ ಅನ್ನು ಸಂಪರ್ಕಿಸುವಾಗ, ದೋಷವನ್ನು ಎಸೆಯಲಾಗುತ್ತದೆ "ಮಾಡ್ಯೂಲ್ ಬೈನರಿ ಹೊಂದಾಣಿಕೆಯಾಗುವುದಿಲ್ಲ." nginx -V ಆಜ್ಞೆಯನ್ನು ಬಳಸಿಕೊಂಡು ಸಂಕಲನ ಆಯ್ಕೆಗಳನ್ನು ವೀಕ್ಷಿಸಬಹುದು

ಲೈಫ್ ಭಿನ್ನತೆಗಳು

ನನ್ನ ಎಲ್ಲಾ ಸೈಟ್‌ಗಳು https ನಲ್ಲಿ ಮಾತ್ರ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ. ಸ್ಕೀಮಾ ಕ್ಷೇತ್ರವು ಅರ್ಥಹೀನವಾಗುತ್ತದೆ, ಹಾಗಾಗಿ ವೆಬ್/ಕನ್ಸೋಲ್ ಅನ್ನು ಪ್ರತ್ಯೇಕಿಸಲು ನಾನು ಅದನ್ನು ಬಳಸುತ್ತೇನೆ.

ನಾನು ಬಳಸುವ ವೆಬ್‌ನಿಂದ ಪ್ರವೇಶಿಸಬಹುದಾದ ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳಲ್ಲಿ:

if (ini_get('pinba.enabled')) {
    pinba_schema_set('web');
}

ಮತ್ತು ಕನ್ಸೋಲ್ ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳಲ್ಲಿ (ಉದಾಹರಣೆಗೆ, ಕ್ರಾನ್ ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳು):

if (ini_get('pinba.enabled')) {
    pinba_schema_set('console');
}

ಗ್ರಾಫಾನಾದಲ್ಲಿನ ನನ್ನ ಡ್ಯಾಶ್‌ಬೋರ್ಡ್‌ನಲ್ಲಿ ಅಂಕಿಅಂಶಗಳನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ವೀಕ್ಷಿಸಲು ವೆಬ್/ಕನ್ಸೋಲ್ ಸ್ವಿಚ್ ಇದೆ.

ನಿಮ್ಮ ಟ್ಯಾಗ್‌ಗಳನ್ನು ನೀವು Pinba ಗೆ ಕಳುಹಿಸಬಹುದು, ಉದಾಹರಣೆಗೆ:

pinba_tag_set('country', $countryCode);

ಅಷ್ಟೇ.

ದಯವಿಟ್ಟು ಲೇಖನದ ಕೆಳಗಿನ ಸಮೀಕ್ಷೆಗಳಿಗೆ ಉತ್ತರಿಸಿ.

ಎಂದಿನಂತೆ, ನಾನು Habr ಮತ್ತು ಸಾಮಾಜಿಕ ನೆಟ್ವರ್ಕ್ಗಳಲ್ಲಿ ವೈಯಕ್ತಿಕ ಸಂದೇಶಗಳ ಮೂಲಕ ಸಲಹೆ ನೀಡುವುದಿಲ್ಲ ಅಥವಾ ಸಹಾಯ ಮಾಡುವುದಿಲ್ಲ ಎಂದು ನಾನು ನಿಮಗೆ ಎಚ್ಚರಿಸುತ್ತೇನೆ.

Github ನಲ್ಲಿ ಟಿಕೆಟ್ ರಚಿಸಿ.

ದಯವಿಟ್ಟು ಇಷ್ಟಗಳೊಂದಿಗೆ ಬೆಂಬಲಿಸಿ ಇಂಗ್ಲೀಷ್ ಆವೃತ್ತಿ ಈ ಲೇಖನದ ರೆಡ್ಡಿಟ್ ನಲ್ಲಿ.

ನೋಂದಾಯಿತ ಬಳಕೆದಾರರು ಮಾತ್ರ ಸಮೀಕ್ಷೆಯಲ್ಲಿ ಭಾಗವಹಿಸಬಹುದು. ಸೈನ್ ಇನ್ ಮಾಡಿ, ದಯವಿಟ್ಟು.

ನೀವು ಸರ್ವರ್‌ನಲ್ಲಿ ಯಾವ OS ಅನ್ನು ಬಳಸುತ್ತಿದ್ದೀರಿ?

  • ಉಬುಂಟು

  • CentOS

  • ಡೆಬಿಯನ್

  • ಜೆಂಟೂ

  • ಕೆಂಪು ಟೋಪಿ

  • ಫೆಡೋರಾ

  • OpenSUSE

  • ಸುಎಸ್ಇ

  • ಯುನಿಕ್ಸ್

  • ವಿಂಡೋಸ್

  • ಇತರ

114 ಬಳಕೆದಾರರು ಮತ ಹಾಕಿದ್ದಾರೆ. 11 ಬಳಕೆದಾರರು ದೂರ ಉಳಿದಿದ್ದಾರೆ.

ನೀವು ಸರ್ವರ್‌ನಲ್ಲಿ ಯಾವ php ಆವೃತ್ತಿಯನ್ನು ಬಳಸುತ್ತಿದ್ದೀರಿ?

  • 7.3

  • 7.2

  • 7.1

  • 7.0

  • 5

  • ಇತರ

105 ಬಳಕೆದಾರರು ಮತ ಹಾಕಿದ್ದಾರೆ. 17 ಬಳಕೆದಾರರು ದೂರ ಉಳಿದಿದ್ದಾರೆ.

ನೀವು ಎಂದಾದರೂ ಪಿನ್ಬಾವನ್ನು ಬಳಸಿದ್ದೀರಾ?

  • ಹೌದು

  • ಇಲ್ಲ, ಆದರೆ ನಾನು ಬಯಸುತ್ತೇನೆ

  • ಇಲ್ಲ ಮತ್ತು ನಾನು ಬಯಸುವುದಿಲ್ಲ

  • ಇಲ್ಲ ಮತ್ತು ಅವಳ ಬಗ್ಗೆ ಕೇಳಿಲ್ಲ

100 ಬಳಕೆದಾರರು ಮತ ಹಾಕಿದ್ದಾರೆ. 14 ಬಳಕೆದಾರರು ದೂರ ಉಳಿದಿದ್ದಾರೆ.

Pinba ಸರ್ವರ್‌ನ ಯಾವ ಆವೃತ್ತಿಯನ್ನು ನೀವು ಪ್ರಯತ್ನಿಸಲು ಬಯಸುತ್ತೀರಿ?

  • pinba_engine (mysql ಎಂಜಿನ್)

  • pinba2 (mysql ಎಂಜಿನ್)

  • ಪಿನ್ಬೋರ್ಡ್ (php + mysql)

  • olegfedoseev/pinba-server (go + OpenTSDB)

  • olegfedoseev/pinba-influxdb (go + influxdb)

  • pinba-server/pinba-server (go + clickhouse)

  • pinba-server/pinba-server (php + clickhouse)

  • ನನ್ನದನ್ನು ನಾನೇ ಬರೆಯುತ್ತೇನೆ

  • ಇತರ

39 ಬಳಕೆದಾರರು ಮತ ಹಾಕಿದ್ದಾರೆ. 47 ಬಳಕೆದಾರರು ದೂರ ಉಳಿದಿದ್ದಾರೆ.

ಮೂಲ: www.habr.com

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ