a tomato

トマトが大好きです

intelijでTypeScriptのJSXトランスフォーム機能を利用時に警告が出る

react 17.0からJSXトランスフォームが実装されているので、本来であればtsconfigにreact-jsxを指定する事が可能です。

ja.reactjs.org

これをintelijでロードした場合に、以下のような警告が表示されるケースがあります。

f:id:kzdev:20210112002332j:plain

対策としては、以下の「Always download the most recent version of schemas」にチェックを入れることで警告は出なくなります。

f:id:kzdev:20210112003118j:plain

docker上でgrafanaを使って様々な監視と通知をさせる

かなり久しぶりの更新です。

最近は開発者でもある程度インフラの事が出来ないといけない風潮になってきました。
ジェネラリストになる道もあるとは思うのですが、開発の割当時間をもっと増やしたいと思っている今日このごろです。

今回はインフラ周りの技術がテーマです。

会社でgrafana & prometheusを使って色々と監視やアラートを出す設定をしているのですが、自宅環境ではまだ対応出来ていなかったので設定していきます。

特に自宅環境は、非力なマシン上でdocker-containerをたくさん起動して公開しているので、grafanaでホストとコンテナの統合監視を実現します。

f:id:kzdev:20200209022835p:plain

続きを読む

golangのパッケージ管理ツールglideが非推奨になっていることに気づく・・

概要

golang1.11がリリースされたので、言語のバージョンアップと一緒に利用しているパッケージのバージョンも確認していたところ、glideのgithub上に以下の記載がありました。

f:id:kzdev:20180908165349p:plain

Golang Dep
The Go community now has the dep project to manage dependencies. Please consider trying to migrate from Glide to dep. If there is an issue preventing you from migrating please file an issue with dep so the problem can be corrected. Glide will continue to be supported for some time but is considered to be in a state of support rather than active feature development.ent.

github GitHub - Masterminds/glide: Package Management for Golang

いずれdisconになるので、depへの切替を検討して下さいとのこと。すぐにやらないとこういったことは、後回しにされがちなので、対応しました。

続きを読む

Google Cloud Platformの無料利用枠を攻める(準備編)

タイトルの通り、他社と比べても太っ腹なGoogle様から提供されている、Google Cloud Platformを無料で使える枠をギリギリまで使い切ってみました。
実際のサービスをこの枠で展開するのは不可能ですが、クラウド環境構築の練習や実験、検証にはもってこなので、ガンガン利用しましょう。

f:id:kzdev:20180818180007j:plain

続きを読む

raspberry pi zero whをUSB経由でインターネットに接続する

前回はraspberry piにOSインストールまで行いました。 このままだとraspberry piIPアドレスがなく、インターネットに接続出来ない状態のままとなり困るので、 USBを通してインターネットに接続する設定を行います。

続きを読む

raspberry pi zero whにOSをインストールする

raspberry pi zeroの最新版であるwhを購入したので、インストールしてカメラ動作の確認、各種センサーの動作を確認まで行います。 今回のテーマは、OSのインストールです。

f:id:kzdev:20180811204021j:plain

購入した機種

機材使用は以下のページの通りです。
whはGPIOが標準搭載された機材なので、センサー周りの追加なども簡単に行うことが出来ます。

www.switch-science.com

続きを読む

monitを使ったサービス簡易監視の設定

本格的な監視をするならzabbixですが、スモールサービスで簡易な監視を行う場合はmonitがお手軽です。

実行環境

CentOS Linux release 7.5.1804 (Core)

インストール

# epel install
[root@vmhost01 ~]# yum install -y monit
Installed:
  epel-release.noarch 0:7-11                                                                                                                                                                                        

Complete!

# monit install
[root@vmhost01 ~]# sudo yum -y install monit
Installed:
  monit.x86_64 0:5.25.1-1.el7                                                                                                                                                                                       

Complete!

ディレクトリ構成

path 役割
/etc/monitrc monitの基本設定
/etc/monit.d 各種監視の設定

プロセス監視

httpdの設定を例にした場合は、以下のように設定する

[root@vmhost01 ~]#  vim /etc/monit.d/httpd
check process httpd with pidfile /var/run/httpd/httpd.pid
        start program = "/bin/systemctl start httpd"
        stop program  = "/bin/systemctl stop httpd"
        if failed
          host localhost
          port 80
          protocol http
        then restart

リソース監視

リソースを監視する設定を例にした場合は、以下のように設定する

[root@vmhost01 ~]#  vim /etc/monit.d/sysresrc
check system 127.0.0.1
## cpu/mem check
 if loadavg (15min) > 2 then alert
 if cpu usage (user) > 90% then alert
 if memory usage > 80% then alert 
## service restart when high load
 if loadavg (1min) > 2 then exec "/etc/init.d/postgresql restart" 
 if loadavg (1min) > 2 then exec "/etc/init.d/httpd restart"
 
##disk check
check device disk_/ with path /
 if space usage > 90% for 5 times within 15 cycles then alert 
 if space usage > 98% then stop

構文チェック

設定した記述が正しいかチェックを行う。

[root@vmhost01 ~]# monit -t
Control file syntax OK

起動設定

# monit起動
[root@vmhost01 ~]#  systemctl start monit

# monit自動起動設定
[root@vmhost01 ~]#  systemctl enable monit

状態確認

現在サーバがどのような状態なのか、以下のコマンド結果で確認が可能です。

[root@vmhost01 ~]# monit status
Monit 5.25.1 uptime: 1m

Process 'httpd'
  status                       Initializing
  monitoring status            Initializing
  monitoring mode              active
  on reboot                    start
  data collected               Fri, 10 Aug 2018 22:33:32

System 'vmhost01'
  status                       OK
  monitoring status            Monitored
  monitoring mode              active
  on reboot                    start
  load average                 [0.05] [0.05] [0.05]
  cpu                          0.3%us 0.3%sy 0.0%wa
  memory usage                 694.2 MB [37.8%]
  swap usage                   7.5 MB [0.4%]
  uptime                       13d 12h 11m
  boot time                    Sat, 28 Jul 2018 10:22:23
  data collected               Fri, 10 Aug 2018 22:33:32