เจ—เฉเฉฐเจเจฒเจฆเจพเจฐ เจšเฉ‡เจคเจพเจตเจจเฉ€เจ†เจ‚ เจฆเฉ‡ เจจเจพเจฒ เจ†เจธเจพเจจ เจ•เฉฐเจฎเฅค เจœเจพเจ‚ เจฌเจฒเฉ‡เจฐเจŸเจฐ เจฆเฉ€ เจฐเจšเจจเจพ เจฆเจพ เจ‡เจคเจฟเจนเจพเจธ

เจ—เฉเฉฐเจเจฒเจฆเจพเจฐ เจšเฉ‡เจคเจพเจตเจจเฉ€เจ†เจ‚ เจฆเฉ‡ เจจเจพเจฒ เจ†เจธเจพเจจ เจ•เฉฐเจฎเฅค เจœเจพเจ‚ เจฌเจฒเฉ‡เจฐเจŸเจฐ เจฆเฉ€ เจฐเจšเจจเจพ เจฆเจพ เจ‡เจคเจฟเจนเจพเจธ

เจนเจฐ เจ•เฉ‹เจˆ เจšเฉ‡เจคเจพเจตเจจเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจชเจฟเจ†เจฐ เจ•เจฐเจฆเจพ เจนเฉˆ.

เจฌเฉ‡เจธเจผเฉฑเจ•, เจฌเฉˆเจ เจฃ เจ…เจคเฉ‡ เจ—เฉเจฐเจพเจซเจพเจ‚ เจจเฉ‚เฉฐ เจตเฉ‡เจ–เจฃ เจ…เจคเฉ‡ เจตเจฟเจ—เจพเฉœเจพเจ‚ เจฆเฉ€ เจญเจพเจฒ เจ•เจฐเจจ เจจเจพเจฒเฉ‹เจ‚ เจœเจฆเฉ‹เจ‚ เจ•เฉเจ เจตเจพเจชเจฐเจฟเจ† เจนเฉˆ (เจœเจพเจ‚ เจจเจฟเจธเจผเจšเจฟเจค เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ) เจคเจพเจ‚ เจธเฉ‚เจšเจฟเจค เจ•เฉ€เจคเจพ เจœเจพเจฃเจพ เจฌเจนเฉเจค เจตเจงเฉ€เจ† เจนเฉˆเฅค

เจ…เจคเฉ‡ เจ‡เจธเจฆเฉ‡ เจฒเจˆ เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจŸเฉ‚เจฒ เจฌเจฃเจพเจ เจ—เจ เจนเจจเฅค เจชเฉเจฐเฉ‹เจฎเฉ€เจฅเฉ€เจ…เจธ เจˆเจ•เฉ‹เจธเจฟเจธเจŸเจฎ เจคเฉ‹เจ‚ เจšเฉ‡เจคเจพเจตเจจเฉ€ เจชเฉเจฐเจฌเฉฐเจงเจ• เจ…เจคเฉ‡ เจตเจฟเจ•เจŸเฉ‹เจฐเฉ€เจ† เจฎเฉˆเจŸเฉเจฐเจฟเจ•เจธ เจ‰เจคเจชเจพเจฆ เจธเจฎเฉ‚เจน เจคเฉ‹เจ‚ vmalertเฅค เจ—เฉเจฐเจพเจซเจพเจจเจพ เจตเจฟเฉฑเจš เจœเจผเฉˆเจฌเจฟเจ•เจธ เจธเฉ‚เจšเจจเจพเจตเจพเจ‚ เจ…เจคเฉ‡ เจšเฉ‡เจคเจพเจตเจจเฉ€เจ†เจ‚เฅค เจฌเฉˆเจธเจผ เจ…เจคเฉ‡ เจŸเฉˆเจฒเฉ€เจ—เฉเจฐเจพเจฎ เจฌเฉ‹เจŸเจธ เจตเจฟเฉฑเจš เจธเจตเฉˆ-เจฒเจฟเจ–เฉ€เจ†เจ‚ เจธเจ•เฉเจฐเจฟเจชเจŸเจพเจ‚ เจœเฉ‹ เจธเจฎเฉ‡เจ‚-เจธเจฎเฉ‡เจ‚ 'เจคเฉ‡ เจ•เฉเจ URL เจ–เจฟเฉฑเจšเจฆเฉ€เจ†เจ‚ เจนเจจ เจ…เจคเฉ‡ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฆเฉฑเจธเจฆเฉ€เจ†เจ‚ เจนเจจ เจ•เจฟ เจ•เฉ€ เจ•เฉเจ เจ—เจฒเจค เจนเฉˆเฅค เจธเจญ เจ•เฉเจ เจฆเจพ เจ‡เฉฑเจ• เจฌเจนเฉเจค เจธเจพเจฐเจพ.

เจ…เจธเฉ€เจ‚, เจธเจพเจกเฉ€ เจ•เฉฐเจชเจจเฉ€ เจตเจฟเฉฑเจš, เจตเฉฑเจ–เฉ‹-เจตเฉฑเจ–เจฐเฉ‡ เจนเฉฑเจฒเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจตเฉ€ เจ•เฉ€เจคเฉ€ เจœเจฆเฉ‹เจ‚ เจคเฉฑเจ• เจ…เจธเฉ€เจ‚ เจ—เฉเฉฐเจเจฒเจฆเจพเจฐ, เจœเจพเจ‚, เจ‡เจธ เจฆเฉ€ เจฌเจœเจพเจ, เจ—เฉเฉฐเจเจฒเจฆเจพเจฐ, เจธเฉฐเจฏเฉเจ•เจค เจšเฉ‡เจคเจพเจตเจจเฉ€เจ†เจ‚ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจ…เจธเฉฐเจญเจตเจคเจพ เจตเจฟเฉฑเจš เจจเจนเฉ€เจ‚ เจšเจฒเฉ‡ เจœเจพเจ‚เจฆเฉ‡เฅค เจ…เจธเฉ€เจ‚ เจ•เฉ€ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจธเฉ€ เจ…เจคเฉ‡ เจœเฉ‹ เจ…เจธเฉ€เจ‚ เจ–เจคเจฎ เจ•เฉ€เจคเจพ เจ‰เจน เจ•เฉฑเจŸ เจคเฉ‹เจ‚ เจนเฉ‡เจ เจพเจ‚ เจนเฉˆเฅค TLDR: เจ“เจชเจจ เจธเฉ‹เจฐเจธ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจชเฉเจฐเจ—เจŸ เจนเฉ‹เจ‡เจ† เจฌเจฒเฉ‡เจฐเจŸเจฐ

เจ•เจพเจซเจผเฉ€ เจฒเฉฐเจฌเฉ‡ เจธเจฎเฉ‡เจ‚ เจฒเจˆ เจ…เจธเฉ€เจ‚ เจ—เฉเจฐเจพเจซเจพเจจเจพ เจตเจฟเฉฑเจš เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เฉ€เจคเฉ€เจ†เจ‚ เจšเฉ‡เจคเจพเจตเจจเฉ€เจ†เจ‚ เจฆเฉ‡ เจจเจพเจฒ เจตเจงเฉ€เจ† เจฐเจนเฉ‡เฅค เจนเจพเจ‚, เจ‡เจน เจธเจญ เจคเฉ‹เจ‚ เจตเจงเฉ€เจ† เจคเจฐเฉ€เจ•เจพ เจจเจนเฉ€เจ‚ เจนเฉˆเฅค เจ‡เจน เจนเจฎเฉ‡เจธเจผเจพ เจ•เฉเจ เจตเจฟเจธเจผเฉ‡เจธเจผ เจนเฉฑเจฒเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฆเฉ€ เจธเจฟเจซเจพเจฐเจธเจผ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจ…เจฒเจฐเจŸเจฎเฉˆเจจเฉ‡เจœเจฐเฅค เจ…เจคเฉ‡ เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจคเฉ‹เจ‚ เจตเฉฑเจง เจตเจพเจฐ เจ…เฉฑเจ—เฉ‡ เจตเจงเจฃ เจตเฉฑเจฒ เจตเฉ€ เจฆเฉ‡เจ–เจฟเจ†. เจ…เจคเฉ‡ เจซเจฟเจฐ, เจนเฉŒเจฒเฉ€ เจนเฉŒเจฒเฉ€, เจ…เจธเฉ€เจ‚ เจนเฉ‹เจฐ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจธเฉ€.

เจฆเฉฑเจธเฉ‹ เจ•เจฟ เจœเจฆเฉ‹เจ‚ เจ‡เฉฑเจ• เจ–เจพเจธ เจšเจพเจฐเจŸ เจตเจฟเฉฑเจš XX% เจฆเฉ€ เจ—เจฟเจฐเจพเจตเจŸ/เจตเจงเจพเจˆ เจนเฉ‹เจˆ เจนเฉˆ เจ…เจคเฉ‡ M เจ˜เฉฐเจŸเจฟเจ†เจ‚ เจฆเฉ€ เจชเจฟเจ›เจฒเฉ€ เจฎเจฟเจ†เจฆ เจฆเฉ‡ เจฎเฉเจ•เจพเจฌเจฒเฉ‡ N เจฎเจฟเฉฐเจŸ เจฒเจˆ เจนเฉˆ? เจ…เจœเจฟเจนเจพ เจฒเจ—เจฆเจพ เจนเฉˆ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจ‡เจธ เจจเฉ‚เฉฐ เจ—เฉเจฐเจพเจซเจพเจจเจพ เจœเจพเจ‚ เจ…เจฒเจฐเจŸเจฎเฉˆเจจเฉ‡เจœเจฐ เจจเจพเจฒ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจชเจฐ เจ‡เจน เจฌเจนเฉเจค เจ†เจธเจพเจจ เจจเจนเฉ€เจ‚ เจนเฉˆเฅค (เจœเจพเจ‚ เจธเจผเจพเจ‡เจฆ เจ‡เจน เจธเฉฐเจญเจต เจจเจนเฉ€เจ‚ เจนเฉˆ, เจฎเฉˆเจ‚ เจนเฉเจฃ เจจเจนเฉ€เจ‚ เจ•เจนเจพเจ‚เจ—เจพ)

เจšเฉ€เจœเจผเจพเจ‚ เจนเฉ‹เจฐ เจตเฉ€ เจ—เฉเฉฐเจเจฒเจฆเจพเจฐ เจนเฉ‹ เจœเจพเจ‚เจฆเฉ€เจ†เจ‚ เจนเจจ เจœเจฆเฉ‹เจ‚ เจ…เจฒเจฐเจŸ เจฆเจพ เจซเฉˆเจธเจฒเจพ เจตเฉฑเจ–-เจตเฉฑเจ– เจธเจฐเฉ‹เจคเจพเจ‚ เจฆเฉ‡ เจกเฉ‡เจŸเจพ เจฆเฉ‡ เจ…เจงเจพเจฐ 'เจคเฉ‡ เจฒเจฟเจ† เจœเจพเจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค เจฒเจพเจˆเจต เจ‰เจฆเจพเจนเจฐเจจ:

เจ…เจธเฉ€เจ‚ เจฆเฉ‹ เจ•เจฒเจฟเจ•เจนเจพเจŠเจธ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจคเฉ‹เจ‚ เจกเฉ‡เจŸเจพ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚, เจซเจฟเจฐ เจชเฉ‹เจธเจŸเจ—เฉเจฐเฉ‡เจธ เจฆเฉ‡ เจ•เฉเจ เจกเฉ‡เจŸเจพ เจจเจพเจฒ เจ‡เจธเจฆเฉ€ เจคเฉเจฒเจจเจพ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚, เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจšเฉ‡เจคเจพเจตเจจเฉ€ 'เจคเฉ‡ เจซเฉˆเจธเจฒเจพ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚เฅค เจธเจฟเจ—เจจเจฒ เจœเจพเจ‚ เจฐเฉฑเจฆ เจ•เจฐเฉ‹

เจ…เจธเฉ€เจ‚ เจ†เจชเจฃเฉ‡ เจซเฉˆเจธเจฒเฉ‡ เจฌเจพเจฐเฉ‡ เจธเฉ‹เจšเจฃ เจฒเจˆ เจฌเจนเฉเจค เจธเจพเจฐเฉ€เจ†เจ‚ เจ‡เฉฑเจ•เฉ‹ เจœเจฟเจนเฉ€เจ†เจ‚ เจ‡เฉฑเจ›เจพเจตเจพเจ‚ เจ‡เจ•เฉฑเจ เฉ€เจ†เจ‚ เจ•เจฐ เจฒเจˆเจ†เจ‚ เจนเจจเฅค เจ…เจคเฉ‡ เจซเจฟเจฐ เจ…เจธเฉ€เจ‚ เจ‡เจธ เจธเฉ‡เจตเจพ เจฆเฉ€เจ†เจ‚ เจœเจผเจฐเฉ‚เจฐเจคเจพเจ‚/เจธเจฎเจฐเฉฑเจฅเจพเจตเจพเจ‚ เจฆเฉ€ เจชเจนเจฟเจฒเฉ€ เจธเฉ‚เจšเฉ€ เจจเฉ‚เฉฐ เจ•เฉฐเจชเจพเจ‡เจฒ เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เฉ€เจคเฉ€, เจœเฉ‹ เจ…เจœเฉ‡ เจคเฉฑเจ• เจจเจนเฉ€เจ‚ เจฌเจฃเจพเจˆ เจ—เจˆ เจนเฉˆเฅค

  • เจตเฉฑเจ–-เจตเฉฑเจ– เจกเจพเจŸเจพ เจธเจฐเฉ‹เจค เจคเฉฑเจ• เจชเจนเฉเฉฐเจš. เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจชเฉเจฐเฉ‹เจฎเฉ€เจฅเฉ€เจ…เจธ, เจ•เจฒเจฟเจ•เจนเจพเจŠเจธ, เจชเฉ‹เจธเจŸเจ—เฉเจฐเฉ‡เจธ

  • เจตเฉฑเจ–-เจตเฉฑเจ– เจšเฉˆเจจเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจšเฉ‡เจคเจพเจตเจจเฉ€เจ†เจ‚ เจญเฉ‡เจœเฉ‹ - เจŸเฉˆเจฒเฉ€เจ—เฉเจฐเจพเจฎ, เจธเจฒเฉˆเจ•, เจ†เจฆเจฟเฅค

  • เจธเฉ‹เจšเจฃ เจฆเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจตเจฟเฉฑเจš, เจ‡เจน เจธเจชเฉฑเจธเจผเจŸ เจนเฉ‹ เจ—เจฟเจ† เจ•เจฟ เจฎเฉˆเจ‚ เจ‡เฉฑเจ• เจ˜เฉ‹เจธเจผเจฃเจพเจคเจฎเจ• เจตเจฐเจฃเจจ เจจเจนเฉ€เจ‚ เจšเจพเจนเฉเฉฐเจฆเจพ เจธเฉ€, เจชเจฐ เจธเจ•เฉเจฐเจฟเจชเจŸเจพเจ‚ เจจเฉ‚เฉฐ เจฒเจฟเจ–เจฃ เจฆเฉ€ เจฏเฉ‹เจ—เจคเจพ

  • เจ‡เฉฑเจ• เจ…เจจเฉเจธเฉ‚เจšเฉ€ 'เจคเฉ‡ เจธเจ•เฉเจฐเจฟเจชเจŸเจพเจ‚ เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃเจพ

  • เจธเฉ‡เจตเจพ เจจเฉ‚เฉฐ เจฎเฉเฉœ เจšเจพเจฒเฉ‚ เจ•เฉ€เจคเฉ‡ เจฌเจฟเจจเจพเจ‚ เจธเจ•เฉเจฐเจฟเจชเจŸเจพเจ‚ เจฆเจพ เจ†เจธเจพเจจ เจ…เฉฑเจชเจกเฉ‡เจŸ

  • เจธเจฐเฉ‹เจค เจ•เฉ‹เจกเจพเจ‚ เจคเฉ‹เจ‚ เจธเฉ‡เจตเจพ เจจเฉ‚เฉฐ เจฆเฉเจฌเจพเจฐเจพ เจฌเจฃเจพเจ เจฌเจฟเจจเจพเจ‚ เจ•เจฟเจธเฉ‡ เจคเจฐเฉเจนเจพเจ‚ เจ•เจพเจฐเจœเจ•เฉเจธเจผเจฒเจคเจพ เจจเฉ‚เฉฐ เจตเจงเจพเจ‰เจฃ เจฆเฉ€ เจฏเฉ‹เจ—เจคเจพ

เจ‡เจน เจธเฉ‚เจšเฉ€ เจ…เฉฐเจฆเจพเจœเจผเจจ เจนเฉˆ เจ…เจคเฉ‡ เจธเฉฐเจญเจพเจตเจค เจคเฉŒเจฐ 'เจคเฉ‡ เจฌเจนเฉเจค เจธเจนเฉ€ เจจเจนเฉ€เจ‚ เจนเฉˆเฅค เจ•เฉเจ เจจเฉเจ•เจคเฉ‡ เจฌเจฆเจฒ เจ—เจ, เจ•เฉเจ เจฎเจฐ เจ—เจเฅค เจธเจญ เจ•เฉเจ เจ†เจฎ เจตเจพเจ‚เจ— เจนเฉˆเฅค

เจ…เจธเจฒ เจตเจฟเฉฑเจš, เจฌเจฒเฉ‡เจฐเจŸเจฐ เจฆเจพ เจ‡เจคเจฟเจนเจพเจธ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจธเจผเฉเจฐเฉ‚ เจนเฉ‹เจ‡เจ†เฅค

เจ—เฉเฉฐเจเจฒเจฆเจพเจฐ เจšเฉ‡เจคเจพเจตเจจเฉ€เจ†เจ‚ เจฆเฉ‡ เจจเจพเจฒ เจ†เจธเจพเจจ เจ•เฉฐเจฎเฅค เจœเจพเจ‚ เจฌเจฒเฉ‡เจฐเจŸเจฐ เจฆเฉ€ เจฐเจšเจจเจพ เจฆเจพ เจ‡เจคเจฟเจนเจพเจธ

เจฎเฉˆเจ‚ เจธเฉฐเจ–เฉ‡เจช เจตเจฟเฉฑเจš เจตเจฐเจฃเจจ เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเจพเจ‚เจ—เจพ เจ•เจฟ เจ…เฉฐเจค เจตเจฟเฉฑเจš เจ•เฉ€ เจนเฉ‹เจ‡เจ† เจ…เจคเฉ‡ เจ‡เจน เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆเฅค (เจนเจพเจ‚, เจฌเฉ‡เจธเจผเจ•, เจ‡เจน เจ…เฉฐเจค เจจเจนเฉ€เจ‚ เจนเฉˆเฅค เจ‰เจคเจชเจพเจฆ เจฆเฉ‡ เจตเจฟเจ•เจพเจธ เจฒเจˆ เจฌเจนเฉเจค เจธเจพเจฐเฉ€เจ†เจ‚ เจฏเฉ‹เจœเจจเจพเจตเจพเจ‚ เจนเจจเฅค เจฎเฉˆเจ‚ เจ…เฉฑเจœ เจนเฉ€ เจฐเฉเจ•เจพเจ‚เจ—เจพ)

เจ‡เจธ เจจเฉ‚เฉฐ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ?

เจคเฉเจธเฉ€เจ‚ เจฒเฉเจ† เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจธเจ•เฉเจฐเจฟเจชเจŸ เจฒเจฟเจ–เจฆเฉ‡ เจนเฉ‹ เจœเจฟเฉฑเจฅเฉ‡ เจคเฉเจธเฉ€เจ‚ เจธเจชเจธเจผเจŸ เจคเฉŒเจฐ 'เจคเฉ‡ เจฌเฉ‡เจจเจคเฉ€เจ†เจ‚ เจญเฉ‡เจœเจฆเฉ‡ เจนเฉ‹ (เจชเฉเจฐเฉ‹เจฎเฉ€เจฅเฉ€เจ…เจธ, เจ•เจฒเจฟเจ•เจนเจพเจŠเจธ, เจ†เจฆเจฟ เจจเฉ‚เฉฐ)เฅค เจคเฉเจธเฉ€เจ‚ เจœเจตเจพเจฌ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจฆเฉ‡ เจนเฉ‹ เจ…เจคเฉ‡ เจ•เจฟเจธเฉ‡ เจคเจฐเฉเจนเจพเจ‚ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจ•เจฐเจฆเฉ‡ เจนเฉ‹ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจฆเฉ€ เจคเฉเจฒเจจเจพ เจ•เจฐเจฆเฉ‡ เจนเฉ‹. เจซเจฟเจฐ เจ•เจฟเจธเฉ‡ เจ•เจฟเจธเจฎ เจฆเฉ€ เจšเฉ‡เจคเจพเจตเจจเฉ€ เจจเฉ‚เฉฐ เจšเจพเจฒเฉ‚/เจฌเฉฐเจฆ เจ•เจฐเฉ‹เฅค เจฌเจฒเฉ‡เจฐเจŸเจฐ เจ†เจชเจฃเฉ‡ เจ†เจช เจ‰เจนเจจเจพเจ‚ เจšเฉˆเจจเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจธเฉ‚เจšเจจเจพ เจญเฉ‡เจœเฉ‡เจ—เจพ เจœเฉ‹ เจคเฉเจธเฉ€เจ‚ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เฉ€เจคเฉ‡ เจนเจจ (เจˆเจฎเฉ‡เจฒ, เจŸเฉˆเจฒเฉ€เจ—เฉเจฐเจพเจฎ, เจธเจฒเฉˆเจ•, เจ†เจฆเจฟ)เฅค เจธเจ•เฉเจฐเจฟเจชเจŸ เจจเฉ‚เฉฐ เจจเจฟเจธเจผเจšเจฟเจค เจ…เฉฐเจคเจฐเจพเจฒเจพเจ‚ 'เจคเฉ‡ เจšเจฒเจพเจ‡เจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจ…เจคเฉ‡... เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡, เจ‡เจน เจธเจญ เจนเฉˆ)

เจ‡เฉฑเจ• เจ‰เจฆเจพเจนเจฐเจฃ เจฆเฉ‡ เจจเจพเจฒ เจฆเจฟเจ–เจพเจ‰เจฃเจพ เจธเจญ เจคเฉ‹เจ‚ เจตเจงเฉ€เจ† เจนเฉˆ:

-- @interval 10s
-- @name script1

local minRequestsRPS = 100

local log = require("log")
local ch1 = require("datasource.clickhouse.ch1")

local res, err = ch1.query("SELECT sum(requests) AS rps FROM some_table WHERE date = now()")
if err ~= nil then
    log.error("clickhouse 'ch1' query error: " .. err)
    return
end

local resultRPS = res[1].rps

if resultRPS < minResultRPS then
    alert.error("rps-min-limit", "Requests RPS are very small: " .. tostring(resultRPS))
else
    alert.success("rps-min-limit", "Requests RPS ok")
end 

เจ‡เฉฑเจฅเฉ‡ เจ•เฉ€ เจนเฉ‹ เจฐเจฟเจนเจพ เจนเฉˆ:

  • เจ…เจธเฉ€เจ‚ เจธเฉฐเจ•เฉ‡เจค เจฆเจฟเฉฐเจฆเฉ‡ เจนเจพเจ‚ เจ•เจฟ เจ‡เจน เจธเจ•เฉเจฐเจฟเจชเจŸ เจนเจฐ 10 เจธเจ•เจฟเฉฐเจŸเจพเจ‚ เจตเจฟเฉฑเจš เจšเจฒเจพเจˆ เจœเจพเจฃเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆ

  • เจธเจ•เฉเจฐเจฟเจชเจŸ เจฆเจพ เจจเจพเจฎ เจฆเจฐเจธเจพเจ“ (เจเจชเฉ€เจ†เจˆ เจฒเจˆ, เจฒเฉŒเจ—เจธ เจตเจฟเฉฑเจš เจกเจฟเจธเจชเจฒเฉ‡ เจฒเจˆ, เจŸเฉˆเจธเจŸเจพเจ‚ เจตเจฟเฉฑเจš เจตเจฐเจคเฉ‹เจ‚ เจฒเจˆ)

  • เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจฒเฉŒเจ— เจฒเจˆ เจฎเฉ‹เจกเฉ€เจŠเจฒ เจจเฉ‚เฉฐ เจ•เจจเฉˆเจ•เจŸ เจ•เจฐเฉ‹

  • เจจเจพเจฎ เจฆเฉ‡ เจจเจพเจฒ เจ•เจฒเจฟเฉฑเจ•เจนเจพเจŠเจธ เจคเฉฑเจ• เจชเจนเฉเฉฐเจšเจฃ เจฒเจˆ เจ‡เฉฑเจ• เจฎเฉ‹เจกเฉ€เจŠเจฒ เจจเฉ‚เฉฐ เจ•เจจเฉˆเจ•เจŸ เจ•เจฐเฉ‹ ch1 (เจ•เฉเจจเฉˆเจ•เจธเจผเจจ เจ–เฉเจฆ เจธเฉฐเจฐเจšเจจเจพ เจตเจฟเฉฑเจš เจธเฉฐเจฐเจšเจฟเจค เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ)

  • เจ•เจฒเจฟเฉฑเจ•เจนเจพเจŠเจธ เจจเฉ‚เฉฐ เจฌเฉ‡เจจเจคเฉ€ เจญเฉ‡เจœเฉ‹

  • เจ•เจฟเจธเฉ‡ เจ—เจฒเจคเฉ€ เจฆเฉ€ เจธเจฅเจฟเจคเฉ€ เจตเจฟเฉฑเจš, เจ…เจธเฉ€เจ‚ เจฒเฉŒเจ— เจ…เจคเฉ‡ เจเจ—เจœเจผเจฟเจŸ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจธเฉเจจเฉ‡เจนเจพ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚

  • เจชเฉเฉฑเจ›เจ—เจฟเฉฑเจ› เจฆเฉ‡ เจจเจคเฉ€เจœเฉ‡ เจฆเฉ€ เจ‡เฉฑเจ• เจธเจฅเจฟเจฐ เจจเจพเจฒ เจคเฉเจฒเจจเจพ เจ•เจฐเฉ‹ (เจ‡เฉฑเจ• เจฒเจพเจˆเจต เจ‰เจฆเจพเจนเจฐเจจ เจตเจฟเฉฑเจš, เจ…เจธเฉ€เจ‚ เจ‡เจน เจฎเฉเฉฑเจฒ เจชเฉเจฐเจพเจชเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจพเจ‚, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจชเฉ‹เจธเจŸเจ—เฉเจฐเฉ‡เจธ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจคเฉ‹เจ‚)

  • ID เจจเจพเจฒ เจšเฉ‡เจคเจพเจตเจจเฉ€ เจจเฉ‚เฉฐ เจธเจฎเจฐเฉฑเจฅ เจœเจพเจ‚ เจ…เจฏเฉ‹เจ— เจ•เจฐเฉ‹ rps-min-limit

  • เจœเฉ‡เจ•เจฐ เจšเฉ‡เจคเจพเจตเจจเฉ€ เจธเจฅเจฟเจคเฉ€ เจฌเจฆเจฒ เจ—เจˆ เจนเฉˆ เจคเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจธเฉ‚เจšเจจเจพ เจชเฉเจฐเจพเจชเจค เจนเฉ‹เจตเฉ‡เจ—เฉ€

เจ‰เจฆเจพเจนเจฐเจฃ เจ•เจพเจซเจผเฉ€ เจธเจฐเจฒ เจ…เจคเฉ‡ เจธเจฎเจเจฃ เจฏเฉ‹เจ— เจนเฉˆเฅค เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจฌเฉ‡เจธเจผเฉฑเจ•, เจ…เจธเจฒ เจœเฉ€เจตเจจ เจฆเฉ€เจ†เจ‚ เจธเจ•เฉเจฐเจฟเจชเจŸเจพเจ‚ เจ•เจพเจซเจผเฉ€ เจฒเฉฐเจฌเฉ€เจ†เจ‚ เจ…เจคเฉ‡ เจ—เฉเฉฐเจเจฒเจฆเจพเจฐ เจนเฉ‹ เจธเจ•เจฆเฉ€เจ†เจ‚ เจนเจจเฅค เจ‰เจฒเจเจฃ เจตเจฟเฉฑเจš เจชเฉˆเจฃเจพ เจ…เจคเฉ‡ เจ—เจฒเจคเฉ€เจ†เจ‚ เจ•เจฐเจจเจพ เจ†เจธเจพเจจ เจนเฉˆเฅค

เจ‡เจธ เจฒเจˆ, เจ‡เฉฑเจ• เจคเจฐเจ•เจชเฉ‚เจฐเจจ เจ‡เฉฑเจ›เจพ เจชเจฐเจฟเจชเฉฑเจ• เจนเฉ‹ เจ—เจˆ เจนเฉˆ - เจคเฉเจนเจพเจกเฉ€เจ†เจ‚ เจธเจ•เฉเจฐเจฟเจชเจŸเจพเจ‚ เจฒเจˆ เจŸเฉˆเจธเจŸ เจฒเจฟเจ–เจฃ เจฆเฉ‡ เจฏเฉ‹เจ— เจนเฉ‹เจฃ เจฒเจˆเฅค เจ…เจคเฉ‡ เจธเฉฐเจธเจ•เจฐเจฃ v0.4.0 เจตเจฟเฉฑเจš เจ‡เจน เจชเฉเจฐเจ—เจŸ เจนเฉ‹เจ‡เจ†.

เจŸเฉˆเจธเจŸเจฟเฉฐเจ— เจธเจ•เฉเจฐเจฟเจชเจŸเจพเจ‚

เจ‰เจชเจฐเฉ‹เจ•เจค เจ‰เจฆเจพเจนเจฐเจจ เจคเฉ‹เจ‚ เจธเจพเจกเฉ€ เจธเจ•เฉเจฐเจฟเจชเจŸ เจฒเจˆ เจ‰เจฆเจพเจนเจฐเจจ เจŸเฉˆเจธเจŸ:

-- @test script1
-- @name script1-test

test = require('test')

local resp = {
    {
        rps = 10
    }
} 

test.datasource('clickhouse.ch1').on('query', 'SELECT sum(requests) AS rps FROM some_table WHERE date = now()').response(resp)

test.alert().assertCalled('error', 'rps-min-limit', 'Requests RPS are very small: 10')
test.alert().assertNotCalled('success', 'rps-min-limit', 'Requests RPS ok')

เจ•เจฆเจฎ เจฆเจฐ เจ•เจฆเจฎ:

  • เจธเจ•เฉเจฐเจฟเจชเจŸ เจฆเจพ เจจเจพเจฎ เจฆเฉฑเจธเฉ‹ เจœเจฟเจธ เจฒเจˆ เจŸเฉˆเจธเจŸ เจฒเจฟเจ–เจฟเจ† เจ—เจฟเจ† เจนเฉˆ

  • เจŸเฉˆเจธเจŸ เจฆเจพ เจจเจพเจฎ (เจฒเฉŒเจ— เจฒเจˆ)

  • เจŸเฉˆเจธเจŸเจฟเฉฐเจ— เจฎเฉ‹เจกเฉ€เจŠเจฒ เจจเจพเจฒ เจœเฉเฉœเฉ‹

  • เจ…เจธเฉ€เจ‚ เจ•เจนเจฟเฉฐเจฆเฉ‡ เจนเจพเจ‚ เจ•เจฟ เจ•เจฒเจฟเฉฑเจ•เจนเจพเจŠเจธ เจจเฉ‚เฉฐ เจ•เจฟเจธเฉ‡ เจ–เจพเจธ เจฌเฉ‡เจจเจคเฉ€ เจฒเจˆ เจ•เฉ€ เจจเจคเฉ€เจœเจพ เจตเจพเจชเจธ เจ•เฉ€เจคเจพ เจœเจพเจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ ch1

  • เจ…เจธเฉ€เจ‚ เจœเจพเจ‚เจš เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจ•เจฟ เจ–เจพเจธ เจธเฉเจจเฉ‡เจนเฉ‡ เจฆเฉ‡ เจจเจพเจฒ เจšเฉ‡เจคเจพเจตเจจเฉ€ (เจ—เจฒเจคเฉ€) rps-min-limit เจ•เจพเจฒ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจธเฉ€

  • เจœเจพเจ‚เจš เจ•เจฐเฉ‹ เจ•เจฟ rps-min-limit เจšเฉ‡เจคเจพเจตเจจเฉ€ เจ…เจธเจฎเจฐเฉฑเจฅ เจจเจนเฉ€เจ‚ เจธเฉ€ (เจธเจซเจฒเจคเจพ)

เจฌเจฒเฉ‡เจฐเจŸเจฐ เจนเฉ‹เจฐ เจ•เฉ€ เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆ?

เจฎเฉˆเจ‚ เจธเจญ เจคเฉ‹เจ‚ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ, เจฎเฉ‡เจฐเฉ€ เจฐเจพเจ เจตเจฟเฉฑเจš, เจฌเจพเจฒเจฐเจŸเจฐ เจฆเฉ‡ เจนเฉเจจเจฐ เจจเฉ‚เฉฐ เจ›เฉ‚เจนเจฃ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเจพเจ‚เจ—เจพ. เจคเฉเจธเฉ€เจ‚ เจ…เจงเจฟเจ•เจพเจฐเจค เจตเฉˆเจฌเจธเจพเจˆเจŸ 'เจคเฉ‡ เจตเจฟเจธเจคเจพเจฐ เจจเจพเจฒ เจธเจญ เจ•เฉเจ เจฆเฉ‡เจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹ https://balerter.com

  • เจคเฉ‹เจ‚ เจกเจพเจŸเจพ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจฆเฉ‡ เจนเจจ

    • เจ•เจฒเจฟเฉฑเจ•เจนเจพเจŠเจธ

    • เจกเจพเจ•เจ–เจพเจจเฉ‡

    • MySQL

    • เจชเฉเจฐเฉ‹เจฎเฉ€เจฅเฉ€เจ…เจธ

    • เจฒเฉ‹เจ•เฉ€

  • เจšเฉˆเจจเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉ‚เจšเจจเจพเจตเจพเจ‚ เจญเฉ‡เจœเฉ‹

    • เจนเฉŒเจฒเฉ€

    • เจคเจพเจฐ

    • syslog

    • เจธเฉ‚เจšเจฟเจค เจ•เจฐเฉ‹ (เจคเฉเจนเจพเจกเฉ‡ เจ•เฉฐเจชเจฟเจŠเจŸเจฐ 'เจคเฉ‡ UI เจธเฉ‚เจšเจจเจพเจตเจพเจ‚)

    • เจˆ-เจฎเฉ‡เจฒ

    • เจตเจฟเจตเจพเจฆ

  • เจ†เจชเจฃเฉ‡ เจกเฉ‡เจŸเจพ เจฆเฉ‡ เจ…เจงเจพเจฐ เจคเฉ‡ เจ—เฉเจฐเจพเจซ เจฌเจฃเจพเจ“, เจšเจฟเฉฑเจคเจฐ เจจเฉ‚เฉฐ S3 เจ…เจจเฉเจ•เฉ‚เจฒ เจธเจŸเฉ‹เจฐเฉ‡เจœ เจตเจฟเฉฑเจš เจ…เจชเจฒเฉ‹เจก เจ•เจฐเฉ‹ เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจธเฉ‚เจšเจจเจพเจตเจพเจ‚ เจจเจพเจฒ เจœเฉ‹เฉœเฉ‹ (เจคเจธเจตเฉ€เจฐเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ เจ‰เจฆเจพเจนเจฐเจจ)

  • เจคเฉเจนเจพเจจเฉ‚เฉฐ เจธเจ•เฉเจฐเจฟเจชเจŸเจพเจ‚ - เจ—เจฒเฉ‹เจฌเจฒ เจ•เฉเฉฐเจœเฉ€/เจฎเฉเฉฑเจฒ เจธเจŸเฉ‹เจฐเฉ‡เจœ เจตเจฟเจšเจ•เจพเจฐ เจกเฉ‡เจŸเจพ เจฆเจพ เจ†เจฆเจพเจจ-เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจจ เจฆเฉ€ เจ†เจ—เจฟเจ† เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ

  • เจฒเฉเจ† เจตเจฟเฉฑเจš เจ†เจชเจฃเฉ€เจ†เจ‚ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจฒเจฟเจ–เฉ‹ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจธเจ•เฉเจฐเจฟเจชเจŸเจพเจ‚ เจตเจฟเฉฑเจš เจตเจฐเจคเฉ‹ (เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš, เจฒเฉ‚เจ† เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ json, csv เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ เจธเจชเจฒเจพเจˆ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ)

  • เจ†เจชเจฃเฉ€เจ†เจ‚ เจธเจ•เฉเจฐเจฟเจชเจŸเจพเจ‚ เจคเฉ‹เจ‚ HTTP เจฌเฉ‡เจจเจคเฉ€เจ†เจ‚ เจญเฉ‡เจœเฉ‹ (เจ…เจคเฉ‡ เจœเจตเจพเจฌ เจชเฉเจฐเจพเจชเจค เจ•เจฐเฉ‹, เจฌเฉ‡เจธเจผเจ•)

  • เจ‡เฉฑเจ• API เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเจพ เจนเฉˆ (เจ…เจœเฉ‡ เจคเฉฑเจ• เจ“เจจเจพ เจ•เจพเจฐเจœเจธเจผเฉ€เจฒ เจจเจนเฉ€เจ‚ เจœเจฟเฉฐเจจเจพ เจ…เจธเฉ€เจ‚ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเจพเจ‚)

  • เจชเฉเจฐเฉ‹เจฎเฉ€เจฅเฉ€เจ…เจธ เจซเจพเจฐเจฎเฉˆเจŸ เจตเจฟเฉฑเจš เจจเจฟเจฐเจฏเจพเจค เจฎเฉˆเจŸเฉเจฐเจฟเจ•เจธ

เจคเฉเจธเฉ€เจ‚ เจนเฉ‹เจฐ เจ•เฉ€ เจ•เจฐเจจ เจฆเฉ‡ เจฏเฉ‹เจ— เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ‹เจ—เฉ‡?

เจ‡เจน เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจธเจชเฉฑเจธเจผเจŸ เจนเฉˆ เจ•เจฟ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจ…เจคเฉ‡ เจ…เจธเฉ€เจ‚ เจธเฉฐเจŸเฉˆเจ•เจธ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจธเจ•เฉเจฐเจฟเจชเจŸเจพเจ‚ เจฆเฉ‡ เจฒเจพเจ‚เจš เจจเฉ‚เฉฐ เจจเจฟเจฏเฉฐเจคเจฐเจฟเจค เจ•เจฐเจจ เจฆเฉ€ เจฏเฉ‹เจ—เจคเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเจพเจ‚ เจ•เจฐเฉ‹เจจ. เจ‡เจน เจตเจฐเจœเจจ v1.0.0 เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจ•เฉ€เจคเจพ เจœเจพเจตเฉ‡เจ—เจพ

เจฎเฉˆเจ‚ เจนเฉ‹เจฐ เจกเจพเจŸเจพ เจธเจฐเฉ‹เจคเจพเจ‚ เจ…เจคเฉ‡ เจธเฉ‚เจšเจจเจพ เจกเจฟเจฒเฉ€เจตเจฐเฉ€ เจšเฉˆเจจเจฒเจพเจ‚ เจฆเจพ เจธเจฎเจฐเจฅเจจ เจ•เจฐเจจเจพ เจšเจพเจนเจพเจ‚เจ—เจพเฅค เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจ•เฉ‹เจˆ เจฏเจ•เฉ€เจจเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡ เจฎเฉ‹เจ‚เจ—เฉ‹เจกเฉ€เจฌเฉ€ เจจเฉ‚เฉฐ เจ—เฉเจ† เจฆเฉ‡เจตเฉ‡เจ—เจพเฅค เจ•เฉเจ เจฒเจˆ เจฒเจšเจ•เฉ€เจฒเฉ‡ เจ–เฉ‹เจœ. SMS เจญเฉ‡เจœเฉ‹ เจ…เจคเฉ‡/เจœเจพเจ‚ เจ†เจชเจฃเฉ‡ เจฎเฉ‹เจฌเจพเจˆเจฒ เจซเจผเฉ‹เจจ 'เจคเฉ‡ เจ•เจพเจฒ เจ•เจฐเฉ‹เฅค เจ…เจธเฉ€เจ‚ เจธเจฟเจฐเจซเจผ เจซเจพเจˆเจฒเจพเจ‚ เจคเฉ‹เจ‚ เจนเฉ€ เจจเจนเฉ€เจ‚, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจ‡เฉฑเจ• เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจคเฉ‹เจ‚ เจธเจ•เฉเจฐเจฟเจชเจŸเจพเจ‚ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฆเฉ‡ เจฏเฉ‹เจ— เจนเฉ‹เจฃเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเจพเจ‚เฅค เจ…เฉฐเจค เจตเจฟเฉฑเจš, เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจ‰เจชเจญเฉ‹เจ—เจคเจพ-เจ…เจจเฉเจ•เฉ‚เจฒ เจตเฉˆเจฌเจธเจพเจˆเจŸ เจ…เจคเฉ‡ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฒเจˆ เจฌเจฟเจนเจคเจฐ เจฆเจธเจคเจพเจตเฉ‡เจœเจผ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเจพเจ‚เฅค

เจ•เฉ‹เจˆ เจตเจฟเจ…เจ•เจคเฉ€ เจนเจฎเฉ‡เจธเจผเจพ เจ•เฉเจ เจ—เฉเจ† เจฐเจฟเจนเจพ เจนเฉˆ) เจ‡เฉฑเจฅเฉ‡ เจ…เจธเฉ€เจ‚ เจคเจฐเจœเฉ€เจนเจพเจ‚ เจจเฉ‚เฉฐ เจธเจนเฉ€ เจขเฉฐเจ— เจจเจพเจฒ เจธเฉˆเฉฑเจŸ เจ•เจฐเจจ เจฒเจˆ เจญเจพเจˆเจšเจพเจฐเฉ‡ เจฆเฉ€ เจฌเฉ‡เจจเจคเฉ€ 'เจคเฉ‡ เจญเจฐเฉ‹เจธเจพ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚เฅค เจ…เจคเฉ‡ เจธเจญ เจ•เฉเจ เจฆเจพ เจ…เจนเจฟเจธเจพเจธ เจ•เจฐเจจ เจฒเจˆ เจญเจพเจˆเจšเจพเจฐเฉ‡ เจฆเฉ€ เจฎเจฆเจฆ เจ•เจฐเจจ เจฒเจˆ

เจ…เฉฐเจค เจตเจฟเฉฑเจš

เจ…เจธเฉ€เจ‚ เจตเจฐเจคเจฆเฉ‡ เจนเจพเจ‚ เจฌเจฒเฉ‡เจฐเจŸเจฐ เจฎเฉ‡เจฐเฉ‡ เจ•เฉ‹เจฒ เจ‡เจน เจ•เจพเจซเจผเฉ€ เจธเจฎเฉ‡เจ‚ เจคเฉ‹เจ‚ เจนเฉˆเฅค เจฆเจฐเจœเจจเจพเจ‚ เจธเจ•เฉเจฐเจฟเจชเจŸเจพเจ‚ เจธเจพเจกเฉ€ เจฎเจจ เจฆเฉ€ เจธเจผเจพเจ‚เจคเฉ€ เจฆเฉ€ เจฐเจพเจ–เฉ€ เจ•เจฐเจฆเฉ€เจ†เจ‚ เจนเจจเฅค เจฎเฉˆเจจเฉ‚เฉฐ เจ‰เจฎเฉ€เจฆ เจนเฉˆ เจ•เจฟ เจ‡เจน เจ•เฉฐเจฎ เจ•เจฟเจธเฉ‡ เจนเฉ‹เจฐ เจฒเจˆ เจฒเจพเจญเจฆเจพเจ‡เจ• เจนเฉ‹เจตเฉ‡เจ—เจพ.

เจ…เจคเฉ‡ เจคเฉเจนเจพเจกเฉ‡ เจ…เฉฐเจ• เจ…เจคเฉ‡ เจชเฉ€เจ†เจฐ เจจเจพเจฒ เจธเฉเจ†เจ—เจค เจนเฉˆเฅค

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹