Slide 1

Slide 1 text

ḉ on RasPi MackerelͰ؆୯ՈϞχλϦϯά

Slide 2

Slide 2 text

ωλඃͬͨ

Slide 3

Slide 3 text

ࣗݾ঺հ • Gunosy Inc. • ։ൃຊ෦ࣥߦ໾һࡶ༻໾ • iOS, Android, Infrastructure, Web • Golang෍ڭ໾ • ਖ਼࠲ • ࠷ۙؾʹͳΔ΋ͷ: MQTT

Slide 4

Slide 4 text

ࠓ೔ͷ࿩ • LunchHack෦Ͱࢼͨ͠ɺRasPiͷ্Ͱ΋ಈ͘Mackerelͷ࿩

Slide 5

Slide 5 text

GunosyLunchHackͱ͸ • Gunosyͷࣾһ༗ࢤͰன৯Λ৯΂ͭͭࣗ༝ʹOSSίϛοτ΍ ݸਓ։ൃΛߦ͏࣌ؒ • ຖि਺ճΏΔΏΔͱ։࠵த

Slide 6

Slide 6 text

RaspberryPiͱ͸

Slide 7

Slide 7 text

Spec • খܕɾ҆Ձͳڭҭ޲͚LinuxϚγϯ • RaspberryPi Foundation͕։ൃ • CPU: ARM • Memory: 256 ~ 1GB • USB microBͰڅి • GPIOϐϯ͕༻ҙ͞Ε͍ͯΔ

Slide 8

Slide 8 text

ARMͳͷͰ Golang͕ಈ͘ʂʂ GOARCH=arm go build

Slide 9

Slide 9 text

ͭ·Γʁ

Slide 10

Slide 10 text

Mackerel͕ಈ͘ʂ

Slide 11

Slide 11 text

ͱ͍͏Θ͚Ͱ΍ͬͯΈͨ

Slide 12

Slide 12 text

جຊతͳϝτϦΫε • CPU • Load Average • Memory • Disk usage

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

ΧελϜϝτϦΫε • CPUԹ౓ ԼهίϚϯυͰऔಘɺmackerel-plugin࡞੒ pi@raspberrypi ~ $ cat /sys/class/thermal/thermal_zone0/temp 54072

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

͜Ε͚ͩ͡Ό໘ന͘ͳ͍ͷͰ ՈͷϞχλϦϯά࢝Ίͨ

Slide 17

Slide 17 text

࢖ͬͨ΋ͷ • SHT21 • ϒϨουϘʔυ • ഑ઢ4ຊ΄Ͳ

Slide 18

Slide 18 text

΍ͬͨ͜ͱ • I2Cܦ༝ͰԹ౓ɾ࣪౓Λऔಘ • mackerel-pluginԽͯ͠customϝτϦΫεͱͯ͠ه࿥ ࢀߟ: https://speakerdeck.com/ymatsuwitter/golang-plus-raspidequ- wei-de-iotru-men-de-nahua

Slide 19

Slide 19 text

kidoman/embd

Slide 20

Slide 20 text

About embd • ૊ΈࠐΈϓϩάϥϛϯά޲͚ϑϨʔϜϫʔΫ • Gobotͱൺ΂Δͱ΋͏গ͠௿ϨΠϠ? • ରԠ୺຤͸গͳ͍ • ֤छBusΛ௚઀৮Γ΍͍͢ • Ұ෦ηϯα౳ͷυϥΠό΋༻ҙ͞Ε͍ͯΔ

Slide 21

Slide 21 text

embdͰSHT21͔ΒԹ౓Λऔಘ • ࠓճ͸EmbdͷI2CBusΛ௚઀ར༻ // Busʢܦ࿏ʣͷ࡞੒ bus := embd.NewI2CBus(1) // ॳظԽ bus.WriteByte(addr, byte(softreset)) // ॳظԽ׬ྃ଴ͪ time.Sleep(500 * time.Millisecond)

Slide 22

Slide 22 text

ଓ͖ // Թ౓Λૹͬͯ΋Β͏Α͏৴߸ૹ৴ bus.WriteByte(addr, triggerTemperatureNoHold) // ϋʔυ΢ΣΞଆͷ৴߸଴ͪ time.Sleep(temperatureWait * time.Millisecond) // 1όΠτ໨ಡΈग़͠ first, _ := bus.ReadByte(addr) // 2όΠτ໨ಡΈग़͠ second, _ := bus.ReadByte(addr) // ̎ͭͷ஋Λݩʹηϧγ΢ε౓ʹม׵ temp := (175.72*float64((int64(first)<<8+int64(second))&statusBitMusk))/float64(1<<16) - 46.85

Slide 23

Slide 23 text

͜ΕΒͷ஋Λ࢖ͬͯ mackerel-plugin࡞੒

Slide 24

Slide 24 text

Թ౓

Slide 25

Slide 25 text

࣪౓

Slide 26

Slide 26 text

͍ͭͰʹAlertΛ࢓ֻ͚ͯΈΔ • Ex. ࣨԹ͕ߴ͗͢Δ৔߹ʹ௨஌

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

ࣗ୐ͷSlackʹ΋௨஌ͯ͠ΈΔ • Ͳͷ͝ՈఉͰ΋ར༻͞Ε͍ͯΔͰ͋Ζ͏Slack • SlackΛ௨஌ઌͱͯ͠ઃఆ͠ɺϝτϦΫεͱͱ΋ʹ౤ߘ

Slide 29

Slide 29 text

No content

Slide 30

Slide 30 text

ࠓ΍Ζ͏ͱ͍ͯ͠Δ͜ͱ ʮॵ͍ʯAlert => MackerelͷWebHookΛड͚औΔ => IRKitͰΤΞίϯىಈ => Alertऩଋ௨஌ => ΤΞίϯఀࢭ

Slide 31

Slide 31 text

ࢀߟ:IRKit • HTTP APIΛ΋ͭεϚʔτϦϞίϯ • ΤΞίϯ౳ϦϞίϯૢ࡞͢ΔػثΛίʔυʹ੍ͯޚՄೳ http://getirkit.com/

Slide 32

Slide 32 text

·ͱΊ • RasPiͱMackerelͰ؆୯ՈϞχλϦϯά • Alert΋؆୯ʹ࢓ֻ͚ΒΕΔ

Slide 33

Slide 33 text

Ҏ্

Slide 34

Slide 34 text

GunosyͰ΋ઈࢍΤϯδχΞืूத! http://gunosy.co.jp/recruit/