ハトネコエ Web がくしゅうちょう

プログラミングやサーバー・Web制作、チームマネジメントなど得た技術のまとめ

Googleスプレッドシートでセルの文字列の文字列結合(IFの活用)

スプレッドシート関数の書き方わからなくて困ること多いのでメモ。

f:id:nekonenene:20180225103733p:plain

こんなふうに、右の列に "/releases" と文字列をくっつけた行が続く場合には関数で書きたい。

文字列の結合は & で書ける。
なので、C2 には =B2&"/releases" と書けばいい。

ただ、これで困るのがB列の文字列が空のとき。
隣のC列には /releases とだけ書かれてしまう。

これでは見栄えが悪いので IF 文を使う。

=IF(NOT(B2 = ""), B2&"/releases", "")

これでOKだ。

!= が使えないので NOT でなんとかしている。

=IF(B2 <> "", B2&"/releases", "")
=IF(B2 = "", "", B2&"/releases") とも書けるので、個人的な見栄えの良さで選択するといいと思います。

Datadog のメモリ監視に関するダッシュボード設定

「君のアカウント、試用版だから有料版にアップグレードするか無料版にダウングレードするかしないと消すね」
Datadog から警告が来たので、もし設定しなおす場合の参考用に。

1. メモリを used, buffers, cached, free の分け方で見る場合

free コマンドで言うところの used, buffers, cached, free で分けて見る場合です。

グラフはこんな感じ。

f:id:nekonenene:20171128003424p:plain

それの設定はこうする。

f:id:nekonenene:20171128004118p:plain

JSONだとこういう設定になっている。

{
  "viz": "timeseries",
  "requests": [
    {
      "q": "avg:system.mem.free{*} by {host}, avg:system.mem.cached{*} by {host}, avg:system.mem.buffered{*} by {host}, avg:system.mem.used{*} by {host} - avg:system.mem.cached{*} by {host} - avg:system.mem.buffered{*} by {host}",
      "aggregator": "avg",
      "conditional_formats": [],
      "type": "area",
      "style": {
        "palette": "dog_classic"
      }
    }
  ],
  "autoscale": true,
  "status": "done"
}

used には buffered と cached が含まれていて、 used + free = total になります。
ですので、下から

  • (used - buffered - cached)
  • buffered
  • cached
  • free

と領域を持つようなグラフになっています。
(used - buffered - cached) が使用メモリ容量とほぼイコールです。

2. メモリを available, not available で分ける場合

(used - buffered - cached) は使用メモリ容量とほぼイコールと上で書きましたが、厳密には異なります。
以下の記事が詳しいです。

Datadog では available は system.mem.usable が当たりますのでそれを使います。

こういうグラフになります。

f:id:nekonenene:20171128010845p:plain

それの設定はこう。

f:id:nekonenene:20171128010955p:plain

JSONでの記述はこうなっています。

{
  "viz": "timeseries",
  "requests": [
    {
      "q": "avg:system.mem.usable{*} by {host}, avg:system.mem.total{*} by {host} - avg:system.mem.usable{*} by {host}",
      "aggregator": "avg",
      "conditional_formats": [],
      "type": "area"
    }
  ],
  "autoscale": true,
  "status": "done"
}

グラフの下部分がメモリ使用量だとわかりやすいので、下から

  • (total - usable)
  • usable

と領域を持つグラフにしています。

基本的にはこちらのグラフだけあれば充分ですが、 1. で紹介したグラフも並べておくと、なんとなく充実感を持てると思います。